首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SetupAPI查找活动图形驱动程序

使用SetupAPI查找活动图形驱动程序
EN

Stack Overflow用户
提问于 2018-04-12 12:37:48
回答 2查看 684关注 0票数 1

我试图使用C++和SetupAPI在Windows上找到当前活动的图形驱动程序的版本。解决方案大致看上去像

  1. 打电话给SetupDiGetClassDevs GUID_DEVCLASS_DISPLAY
  2. 为结果集调用SetupDiBuildDriverInfoList
  3. 使用SetupDiEnumDriverInfo调用SPDIT_COMPATDRIVER设置的设备,这给我提供了与GPU兼容的所有已知驱动程序。

结果包括微软的后备驱动程序,我可以很容易地排除它,但它也包括所有已经安装在系统上的驱动程序版本(来自NVIDIA)。

问题是:我如何找出哪些驱动程序实际运行?

我从步骤1返回的SP_DEVINFO_DATA中知道如何调用驱动程序服务,我也得到了某种注册表项,但我不知道如何将它与SP_DRVINFO_DATA联系起来。我也知道NVAPI提供驱动程序管理功能,但我更喜欢与各种供应商的GPU一起工作的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-12 15:28:30

同时,我在为什么SetupDiEnumDriverInfo会为我的驱动程序提供两个版本号找到了解决方案:在步骤3之前,您需要用DI_FLAGSEX_INSTALLEDDRIVER标志更新设备信息的安装参数。

票数 0
EN

Stack Overflow用户

发布于 2018-04-12 16:03:29

只有FYI,还可以通过SPDRP_DRIVER查询SetupDiGetDeviceRegistryProperty,然后在Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\下查找该注册表值。那个键包含了所有的驱动程序信息。这里是来自WebKit的一些示例代码,它实际上以这种方式检索GPU信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49796791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档