C# 获取PCI等设备的插槽位置信息
最近遇到问题,需要获取设备管理器中看到的PCI位置等信息,例如:
经过查阅资料发现可以在Win32_PNPEntity表中查找到PCI设备的一些信息:
var moc = new ManagementObjectSearcher("select * from Win32_PNPEntity").Get();
但是其中并不包含位置信息,这就很让人疑惑了,设备管理器的这些信息是从什么地方查找出来的呢?
经常一通操作后,突然想到注册表中包含所有的硬件信息,于是在注册表中查找了相关的硬件设备,发现果然是存在这些信息的(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum):
剩下的就好办多了,只需要在ManagementObjectSearcher中搜索出设备的’设备实例路径’然后再对应的查询注册表的条目,读取LocationInformation即可获取该设备的位置信息。
其他的设备管理器中显示的信息,同理也可以获取到了。