我正在尝试使用SetupAPI更改设备的安装驱动程序。驱动程序已经出现在PC上,只是当前没有被选中。
更确切地说,我正在尝试取消为USB复合设备安装第三方驱动程序,而不是安装默认的windows驱动程序。
我已经让它几乎像这样工作了:首先,找到设备使用
SetupDiGetClassDevs
SetupDiEnumDeviceInfo
SetupDiGetDeviceInstanceId去找那个装置。
接下来,查找我要使用的默认USB复合设备驱动程序。
SetupDiBuildDriverInfoList
SetupDiEnumDriverInfo
SetupDiGetDriverInfoDetail一旦我找到司机,我就打电话
SetupDiSetSelectedDriver
SetupDiInstallDevice这实际上把驱动程序切换回来了,就像在设备管理器中所看到的那样。
但是,第三方驱动程序将设备放入自己的组/类别中,并且在使用我的方法时,此更改不会取消。
在设备管理器中手动选择标准USB复合设备驱动程序可以将设备类别还原回USB控制器,这就是为什么我认为我的驱动程序安装过程不完整的原因。我可能错过了什么?
发布于 2017-02-14 11:37:49
原来工作安装顺序是
SetupDiSetSelectedDevice
SetupDiSetSelectedDriver
InstallSelectedDriver // From newdev.dll, not in a public headerhttps://stackoverflow.com/questions/42222303
复制相似问题