在 C++ 中获取设备的当前 "Active" 驱动程序

Get the currently "Active" driver for a device in C++

我已经使用 SetupAPI 枚举所有驱动程序,构建其属性列表等。但我想要的是仅枚举“Active " 任何设备的驱动程序。

例如。对于 Intel HD 5500,系统中安装了几个不同版本的驱动程序,例如

20.19.15.4531
20.19.15.4454

但是DeviceManager中显示的版本是20.19.15.4531。我只需要这个版本。

当我使用 SetupAPI 时,我得到了两个驱动程序。我已经尝试了 中列出的解决方案,但我可以确认该解决方案对我不起作用。

SetupDiGetSelectedDriver() 不起作用 。也就是说,它仅在我们使用 SetupAPI 函数将驱动程序安装到商店时才起作用。

任何帮助将不胜感激。

注意:查找和枚举驱动程序没有问题。我使用 SetupDiBuildDriverInfoList()SetupDiEnumDrvInfo(),它们按预期工作。

我终于在 C++ 中使用 WMI 构建了当前驱动程序列表。找不到出路!