更改已安装的设备驱动程序

时间:2017-02-14 09:28:37

标签: windows setupapi

我正在尝试使用SetupAPI更改设备的已安装驱动程序。该驱动程序已经存在于PC上,目前尚未选中。

更具体地说,我正在尝试撤消为USB复合设备安装第三方驱动程序,而是安装默认的Windows驱动程序。

我已经得到了几乎这样的工作:首先,使用

找到设备
SetupDiGetClassDevs
SetupDiEnumDeviceInfo
SetupDiGetDeviceInstanceId

找到设备。

接下来,找到我想要使用

安装的默认USB复合设备驱动程序
SetupDiBuildDriverInfoList
SetupDiEnumDriverInfo
SetupDiGetDriverInfoDetail

找到司机后,我打电话给

SetupDiSetSelectedDriver
SetupDiInstallDevice

这实际上会切换回驱动程序,这可以在设备管理器中观察到。

但是,第三方驱动程序将设备放入其自己的组/类别中,并且在使用我的方法时,此更改撤消。

在设备管理器中手动选择标准USB复合设备驱动程序将设备类别还原回USB控制器,这就是我认为我的驱动程序安装过程不完整的原因。我可能会缺少什么?

1 个答案:

答案 0 :(得分:0)

原来的工作安装顺序是

SetupDiSetSelectedDevice
SetupDiSetSelectedDriver
InstallSelectedDriver // From newdev.dll, not in a public header