Kann ein Treiberwechsel unter Windows für ein Plug & Play-Peripheriegerät automatisiert werden?

893
Gnoupi

Ist es möglich, einen Treiberwechsel für dasselbe Peripheriegerät unter Windows zu automatisieren? Normalerweise um zwischen zwei zu wechseln. (Ich spreche von der Art des Treibers, für den der Computer normalerweise nicht neu gestartet werden muss).

Ich habe ein Peripheriegerät, für das ich in einigen Fällen den Treiber des Konstruktors verwende, in anderen Fällen aber auch einen modifizierten Treiber. Nicht dass der wechselnde Fahrer wirklich nervig ist, aber ich würde gerne wissen, ob es möglich wäre, es einfacher zu machen, wie zum Beispiel bei einer Abkürzung. Ich kenne den Namen des Treibers, sogar welche Dateien betroffen sind.

Für weitere Details handelt es sich bei dem betreffenden Peripheriegerät um ein "Xbox360 Gamepad für Windows" (oder ähnliches). Der Basistreiber eignet sich gut für neue Spiele, kann jedoch nicht korrekt mit älteren Spielen umgehen (einige Probleme mit Äxten und Vibrationen). Der modifizierte Treiber verhält sich wie ein klassischer Controller, funktioniert jedoch bei neuen Spielen nicht ordnungsgemäß (normalerweise wird die neue Version von dxinput verwendet, die mit "Games for Windows" verknüpft ist). Dies ist jedoch keine spezifische Frage zu diesem Gamepad. Ich frage im Allgemeinen nach der Automatisierung dieses Treiberwechsels.

Ich verwende derzeit Windows XP, daher ist meine Frage hauptsächlich, aber ich interessiere mich auch für das gleiche Problem für spätere Versionen (Windows 7, höchstwahrscheinlich).

Ich bin nicht wirklich sicher, ob das überhaupt möglich ist, aber wenn jemand eine Idee hat, frage ich.


Edit: Seit ich diese Frage gestellt habe, war ich nicht wirklich in der Lage, es noch einmal zu geben, um beispielsweise zu versuchen, was Harrymc vorschlug (und jetzt quack). Ich entschuldige mich für das bisher fehlende Feedback, aber ich werde das später korrigieren.

2

3 Antworten auf die Frage

1
harrymc

Weitere Informationen finden Sie im Driver Loader-Dienstprogramm unter http://www.osronline.com/article.cfm?article=157 .
Dies könnte Ihr Problem lösen.

Wenn Ihnen meine Antwort gefallen hat, wie wäre es mit einer Up-Abstimmung? harrymc vor 14 Jahren 0
aww, für Stimmen stecken? hier ist ein +1 für einen guten Fund :) vor 14 Jahren 0
Vielen Dank für Ihre Aufmerksamkeit, Molly. harrymc vor 14 Jahren 0
1
quack quixote

Interesting question. This isn't a full answer, unfortunately, since I've been out of Windows driver development for a few years. Hopefully it will help put you on the right track.

A quick search found this thread at OSRonline. It's old, but is fairly direct:

You can use device manager and disable the device to unload, and enable to reload as has been stated by others here. BTW, the driver will only unload if every instance of the device is disabled.

Also, you can disable/enable programmatically. Look at the devcon sample in the latest DDK to see how that is done. In fact, the devcon sample is essentially a command line device manager with source, it has a wealth of useful information in it.

If you can find the devcon utility (seems available at that KB article; I'm not sure it's still available in the current Windows DDK) you may be able to whip up a batch script to disable your PnP devices and swap drivers. Such a script might need to load in a registry change to swap the drivers, but devcon should allow the script to perform the disable/enable.

0

Der richtige Weg wäre ein anderes Hardware-Profil, aber das ist nicht wirklich "Komfort" :)

Ich verwende diese Methode, um mit verschiedenen Treibern oder Dienstkonfigurationen zu experimentieren. Natürlich müssen Sie bei einem Profilwechsel jedoch einen Neustart durchführen.

Ja, ich denke, eine solche Methode wäre für den Fall, dass mehrere Treiber geändert werden müssen, für die ohnehin ein Neustart erforderlich ist. Leider ist der Treiberwechsel für ein einzelnes Peripheriegerät nicht wirklich passend, da dies letztendlich mehr Zeit in Anspruch nehmen würde. Gnoupi vor 14 Jahren 0