Вопрос:
У нас есть часть программного обеспечения, которое может работать на нескольких разных видеокартах, как ATI, так и NVIDIA. Мне нужно определить идентификатор устройства или имя модели видеокарты перед установкой драйверов, чтобы я мог создать образ жесткого диска, который можно загрузить с помощью любой из поддерживаемых нами графических карт. обнаружить графическую карту при первой загрузке, установить драйвер, а затем перезапустить. Целевая платформа – WinXP.
Я попытался использовать WMI, но он может получать информацию об адаптере дисплея, которая не включает идентификатор устройства, и до того, как драйверы будут установлены, адаптер дисплея будет иметь только общие данные, такие как “Video Controller (VGA)” для имя и т.д.
EnumDisplayDevices не может обнаружить устройство до тех пор, пока не будут установлены его драйверы.
Это должно быть возможно, так как при открытии нового мастера аппаратного обеспечения он знает имя видеокарты, но я просто не могу найти способ сделать это.
Любые идеи?
EDIT – здесь запрос
ExecQuery(bstr_t(«WQL»),bstr_t(«SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE ‘PCI\VEN'»), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); Лучший ответ:
В будущем для других пользователей я добавлю свой собственный ответ.
В отличие от того, что я сказал в своем сообщении, WMI может фактически обнаруживать удаленные устройства, запрашивая Win32_PNPEntity, вы можете получить их идентификаторы устройств.