如何获取PCI设备的设备ID?

时间:2012-08-15 09:09:31

标签: c# wmi device pci

我正在尝试从C#中的设备管理器获取系统设备ID。我找到了一些代码来查找USB设备ID,但我不知道如何将代码从USB设备更改为PCI设备。

这是我找到的代码:

 ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_SystemDevices WHERE InterfaceType='USB'");    
 foreach (ManagementObject mo in mos.Get())     
 {
      ManagementObject query = new ManagementObject("Win32_PhysicalMedia.Tag='" + mo["DeviceID"] + "'");      
      Console.WriteLine(query["SerialNumber"]);    
}

1 个答案:

答案 0 :(得分:4)

根据MSDN, Win32_PhysicalMedia 代表任何类型的文档或存储介质。 如果要从PCI设备获取DeviceID(如在控制面板中的设备管理器中),则需要 Win32_PnPEntity 类,该类表示即插即用设备的属性。因此,请尝试使用此代码:

ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_PnPEntity");

foreach (ManagementObject queryObj in searcher.Get())
{
     Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
     Console.WriteLine("Description: {0}", queryObj["Description"]);
}

运行此代码可为我提供有关我的PCI设备的大量信息