3

我们有一款软件可以在多种不同的显卡上运行,包括 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);
4

1 回答 1

3

以供其他用户将来参考,我将添加自己的答案。

与我在帖子中所说的相反,WMI 实际上可以检测已卸载的设备,通过查询 Win32_PNPEntity 您可以获得它们的设备 ID。

于 2012-05-09T15:56:44.693 回答