2017-02-14 94 views
0

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

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

之前我就几乎这样的工作:首先,找到使用

SetupDiGetClassDevs 
SetupDiEnumDeviceInfo 
SetupDiGetDeviceInstanceId 

找到设备的设备。

接下来,找到我想用

SetupDiBuildDriverInfoList 
SetupDiEnumDriverInfo 
SetupDiGetDriverInfoDetail 

一旦我发现司机安装默认USB复合设备驱动程序,我称之为

SetupDiSetSelectedDriver 
SetupDiInstallDevice 

这实际上不切换驱动程序备用,如在设备管理器中观察。

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

手动选择设备管理器中的标准USB复合设备驱动程序确实将设备类别恢复到USB控制器,这就是为什么我认为我的驱动程序安装过程不完整。我可能会错过什么?

回答

0

原来工作的安装顺序是

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