更改已安装的设备驱动程序
Change installed device driver
我正在尝试使用 SetupAPI 更改设备的已安装驱动程序。驱动程序已存在于 PC 上,只是当前未选择。
更具体地说,我正在尝试取消安装 USB 复合设备的第三方驱动程序,并改为安装默认的 windows 驱动程序。
我已经搞定了几乎这样工作:首先,使用
找到设备
SetupDiGetClassDevs
SetupDiEnumDeviceInfo
SetupDiGetDeviceInstanceId
找到设备。
接下来,找到我要安装的默认USB复合设备驱动程序
SetupDiBuildDriverInfoList
SetupDiEnumDriverInfo
SetupDiGetDriverInfoDetail
找到驱动程序后,我调用
SetupDiSetSelectedDriver
SetupDiInstallDevice
这实际上确实将驱动程序切换回来,正如在设备管理器中所观察到的那样。
但是,第三方驱动程序将设备放入自己的 group/category,并且在使用我的方法时此更改不会撤消。
在设备管理器中手动选择标准 USB 复合设备驱动程序确实 将设备类别恢复为 USB 控制器,这就是我认为我的驱动程序安装过程不完整的原因。我可能遗漏了什么?
原来有效的安装顺序是
SetupDiSetSelectedDevice
SetupDiSetSelectedDriver
InstallSelectedDriver // From newdev.dll, not in a public header
我正在尝试使用 SetupAPI 更改设备的已安装驱动程序。驱动程序已存在于 PC 上,只是当前未选择。
更具体地说,我正在尝试取消安装 USB 复合设备的第三方驱动程序,并改为安装默认的 windows 驱动程序。
我已经搞定了几乎这样工作:首先,使用
找到设备SetupDiGetClassDevs
SetupDiEnumDeviceInfo
SetupDiGetDeviceInstanceId
找到设备。
接下来,找到我要安装的默认USB复合设备驱动程序
SetupDiBuildDriverInfoList
SetupDiEnumDriverInfo
SetupDiGetDriverInfoDetail
找到驱动程序后,我调用
SetupDiSetSelectedDriver
SetupDiInstallDevice
这实际上确实将驱动程序切换回来,正如在设备管理器中所观察到的那样。
但是,第三方驱动程序将设备放入自己的 group/category,并且在使用我的方法时此更改不会撤消。
在设备管理器中手动选择标准 USB 复合设备驱动程序确实 将设备类别恢复为 USB 控制器,这就是我认为我的驱动程序安装过程不完整的原因。我可能遗漏了什么?
原来有效的安装顺序是
SetupDiSetSelectedDevice
SetupDiSetSelectedDriver
InstallSelectedDriver // From newdev.dll, not in a public header