Frage

Wer weiß, Wege, teilweise oder vollständig zu automatisieren Treiber Testinstallation?

Ich bin neu in der Treiberentwicklung und bin mehr ein Testorientierten Ansatz in höheren Sprachen verwendet wird, so auf die Art der Umgebung zu bewegen, wo ich Test nicht leicht kann, wie ich für mich, einen Schritt zurück zu gehen hat. Ich bin mit Virtual PC für meine Testumgebung und zur Zeit es zurücksetzen müssen, offene Geräte-Manager, das Gerät auszuwählen, klicken Sie durch ein Bündel von „ Sie wirklich sicher, würden Sie nicht lieber eine dieser Systemtreiber installieren “Typ Dialoge, dann schließlich die Testumgebung zurückgesetzt, während WinDbg in der Host-Maschine neu gestartet wie die Testumgebung Boote ... argh.

Nach Wiederholung dieses Prozesses viele, schon viele Male, doch hat es eine bessere Art und Weise sein, dies zu tun? Welche Tools / Methoden / Tricks verwenden kommerzielle Treiber-Entwickler ihre Treiber in einer Testumgebung laufen?

Beachten Sie, dies ist nicht über Unit-Tests Treiber habe ich zu diesem Zeitpunkt nicht bekam noch oder wissen, ob es überhaupt möglich ist. Dies ist nur über eine Testumgebung mit WinDbg Anheizen und vergewissern Sie, dass einige kleine Änderung, die ich getan haben kann, ist das, was ich erwarte.

War es hilfreich?

Lösung

Es scheint mir, dass eine Virtualisierungssoftware + a " Mock-Objekte " (Layering) Ansatz (wie von Aaron Digulla vorgeschlagen) + Skripte (wie von Sergius vorgeschlagen) können Gerätetreiberentwicklung vereinfachen.

Aber wenn Sie Visual Studio verwenden Anwendungen auf Benutzerebene zu entwickeln, können Sie es für den Kernel-Gerätetreiber Entwicklung benutzen, um mit VisualDDK (+ VirtualKD zu debuggen über eine Named Pipe, die schneller ist als über einen virtuellen COM-Port) , die speziell auf die Belästigungen, dass Sie erwähnen; von seiner Homepage:

  

... Dieses Projekt bringt die Einfachheit und   Bequemlichkeit der Windows-Anwendung   Entwicklung der Treiberentwicklung   Welt. Keine manuelle Erstellung von   Build-Skripte, das Kopieren des Treibers   Dateien, Treiber von INF-Dateien zu installieren,   Umschalten zwischen WinDbg und   Source-Editor oder Warten auf Sekunden   nach jedem Schritt aufgrund der extra langsam   virtuell COM-Port. Erstellen Sie einfach einen Treiber   projizieren eine bequeme Treiber mit   Assistent, eine virtuelle Maschine aus, und   Debuggen der Fahrer genießen direkt   von Visual Studio. Sie möchten Test ein   Veränderung? Gerade die normalerweise Drücken Umschalt-F5,   Ändern Sie Ihre Fahrer, es wieder aufzubauen und   erneut starten . VisualDDK wird entladen   der alte Treiber, installieren Sie die neue   und laden Sie es automatisch und schnell.   Gebohrt mit WinDbg Laden Symboldateien   für Minuten und Nachschlagen Symbole für   Sekunden? Lassen Sie einfach VisualDDK optimize   das für Sie eine eigene mit DIA-basierten   Symbol-Engine. Verwendung von C ++ / STLPort in   Ihre Fahrer? VisualDDK nativ   visualisieren alle STL Behälter und   Strings, so gut wie Visual Studio tut   für Anwendungen im Benutzermodus. ...

Andere Tipps

Sie können einige Shell-Skripte schreiben (mit sc.exe und devcon.exe) Deployment-Aufgaben zu automatisieren (kein Öffnen Geräte-Manager, klicken Sie auf Tasten, etc). Und macht Schnappschuss des Systems bereit zu debuggen (muss nicht für den Systemstart warten).

Vergessen Sie nicht, Ihren Fahrer mit DriverVerifier zu überprüfen!

Beispiel für mein eigenes Skript:)

sc create FsFilter type= filesys binPath= c:\FSFilterDrv.sys
sc start FsFilter
pause
sc stop FsFilter
sc delete FsFilter

Es hängt alles ein wenig auf, welche Art von Fahrer Sie schreiben. Aber in vielen Fällen eine entsprechende Make-Datei zu schreiben (oder so ähnlich), die Griffe der Treiberinstallation, Start / Stopp und Start eines Testgeschirrs kann schon gut genug sein.

ich auch so konfigurieren, alle meine Testmaschinen zur automatischen Anmeldung (Autoadminlogon), Karte Netto-Laufwerke und starten Sie eine entsprechende Eingabeaufforderung nach dem Start. einen spezifischen Test läuft dann nur in einem einzigen Befehl eine Frage der Typisierung.

Ein Wort über VirtualPC: VirtualPC ist sehr praktisch für Kernel-Modus-Entwicklung, aber vergessen Sie nicht, dass es eine Einprozessor Maschine emuliert - nur so sicher sein, regelmäßig den Code zu testen, als auch auf einer Multi-Prozessor-Maschine. Das sei gesagt, kann der VHD Trick praktisch erscheinen, aber es etwas Bindungen Sie Virtual PC -. Schreiben entsprechende Skripte, die gleichermaßen die Arbeit an VirtualPC wie auf einer realen Maschine daher ein besserer Ansatz erscheint mir

Schließlich halte es für eine schamlose Werbung, aber wenn Sie für eine Einheit der Suche nach Windows-Kernel-Modus-Code-Test-Framework, habe ich eine geschrieben: cfix .

Ich denke, der DevCon-Dienstprogramm (beschrieben in diesem OSR Online-Artikel ) wird dir helfen. Sie sollten in der Setup-Batch-Dateien können, die auf einen Klick den Job.

Es ist kostenlos mit osronline.com zu unterzeichnen, und Sie werden wahrscheinlich zu diesem Artikel erhalten müssen sich anmelden. Und wenn Sie Treiber schreiben, WILL Sie sich anmelden. Diese Jungs haben dies zu tun für eine lange Zeit, und es gibt eine Menge wirklich guter Informationen auf dieser Website.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top