更改已安装的设备驱动程序
问题描述:
我正在尝试更改使用SetupAPI的设备的已安装驱动程序。该驱动程序已经存在于PC上,目前尚未选中。更改已安装的设备驱动程序
更具体地说,我试图取消为USB复合设备安装第三方驱动程序,而是安装默认的Windows驱动程序。
之前我就几乎这样的工作:首先,找到使用
SetupDiGetClassDevs
SetupDiEnumDeviceInfo
SetupDiGetDeviceInstanceId
找到设备的设备。
接下来,找到我想用
SetupDiBuildDriverInfoList
SetupDiEnumDriverInfo
SetupDiGetDriverInfoDetail
一旦我发现司机安装默认USB复合设备驱动程序,我称之为
SetupDiSetSelectedDriver
SetupDiInstallDevice
这实际上不切换驱动程序备用,如在设备管理器中观察。
但是,第三方驱动程序会将设备放入其自己的组/类别,并且在使用我的方法时,此更改是而不是已取消。
手动选择设备管理器中的标准USB复合设备驱动程序确实将设备类别恢复到USB控制器,这就是为什么我认为我的驱动程序安装过程不完整。我可能会错过什么?
答
原来工作的安装顺序是
SetupDiSetSelectedDevice
SetupDiSetSelectedDriver
InstallSelectedDriver // From newdev.dll, not in a public header