2017-02-14 97 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