2017-02-14 4 views
0

Ich versuche, den installierten Treiber für ein Gerät mithilfe von SetupAPI zu ändern. Der Treiber ist bereits auf dem PC vorhanden, gerade nicht ausgewählt.Ändern des installierten Gerätetreibers

Genauer gesagt, ich versuche, die Installation eines Drittanbietertreibers für ein USB-Composite-Gerät rückgängig zu machen, und installieren Sie stattdessen die Standard-Windows-Treiber.

Ich habe es schon fast wie folgt arbeiten: mit

SetupDiGetClassDevs 
SetupDiEnumDeviceInfo 
SetupDiGetDeviceInstanceId 

um das Gerät zu finden, zuerst das Gerät finden.

Als nächstes wird der Standard-USB-Composite-Gerätetreiber finde ich

SetupDiBuildDriverInfoList 
SetupDiEnumDriverInfo 
SetupDiGetDriverInfoDetail 

Sobald ich den Treiber gefunden mit installieren möchten, rufen ich

SetupDiSetSelectedDriver 
SetupDiInstallDevice 

Dies ist die Fahrer tatsächlich zurück schaltet, wie Dose im Gerätemanager beobachtet werden.

Der Drittanbieter-Treiber legte das Gerät jedoch in eine eigene Gruppe/Kategorie, und diese Änderung ist nicht rückgängig gemacht, wenn Sie meinen Ansatz verwenden.

Manuelles Auswählen des standardmäßigen USB-Composite-Gerätetreibers im Gerätemanager macht die Gerätekategorie zurück auf USB-Controller, weshalb der Installationsprozess meiner Treiber unvollständig ist. Was könnte ich vermissen?

Antwort

0

Schaltet die Arbeitsinstallationssequenz

SetupDiSetSelectedDevice 
SetupDiSetSelectedDriver 
InstallSelectedDriver // From newdev.dll, not in a public header 
ist aus
Verwandte Themen