我们有一款软件可以运行在几种不同的显卡上,包括ATI和NVIDIA。我需要能够在安装驱动程序之前确定显卡的设备ID或型号名称,以便我可以创建一个硬盘驱动器映像,可以使用我们支持的任何显卡启动它,拥有它首次启动时检测显卡,安装驱动程序然后重启。目标平台是WinXP。
我尝试使用WMI,但只能检索有关显示适配器的信息,不包括设备ID,在安装驱动程序之前,显示适配器只会包含“视频控制器(VGA)”等通用数据这个名字等等。
EnumDisplayDevices在安装驱动程序之前无法检测到设备。
这必须是可能的,因为当新硬件向导打开时,它知道显卡的名称,但我找不到这样做的方法。
有什么想法吗?
编辑 - 这是查询
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);
答案 0 :(得分:2)
为了将来参考其他用户,我将添加自己的答案。
与我在帖子中所说的相反,WMI实际上可以检测到已卸载的设备,通过查询Win32_PNPEntity,您可以获取其设备ID。