c# - 如何获取 PCI 设备的设备 ID?

标签 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"]);    
}

最佳答案

根据 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 设备的信息

关于c# - 如何获取 PCI 设备的设备 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966684/

相关文章:

c# - 如何在Windows Azure中有效扩展?

c# - Parallel.ForEach over AuthorizationRuleCollection

接口(interface)上的 c# 属性

c - D3DKMTOpenAdapterFromDeviceName 和 DeviceName

iphone - 横向/纵向冲突 - iOS

css - 在小型设备中查看时显示额外空间的旋转木马 slider

c# - Silverlight - C# 和 LINQ - 按多个字段排序

c# - 是否可以通过 WMI 获取 Cluster -> Availability Group Instance Node Map?

c# - 以高性能方式查询 Windows 事件日志

powershell - 如何通过 WMI 读取应用程序和服务日志?