Как получить идентификатор устройства PCI-устройств?

Я пытаюсь получить идентификаторы системных устройств из диспетчера устройств на С#. Я нашел код для поиска идентификатора USB-устройства, но не знаю, как изменить код с 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"]);    
}

person user1600045    schedule 15.08.2012    source источник


Ответы (1)


Согласно MSDN, Win32_PhysicalMedia представляет любой тип документации или носителя для хранения. Если вы хотите получить DeviceID от устройства PCI (например, как в Диспетчере устройств в Панели управления) - вам нужен класс Win32_PnPEntity, который представляет свойства устройства Plug and Play. Итак, попробуйте использовать этот код:

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.

person soralex    schedule 29.08.2012