Statische Treiberüberprüfungsbefehle (MSBuild)

Sie können die statische Treiberüberprüfung (Static Driver Verifier, SDV) in einem Visual Studio-Eingabeaufforderungsfenster ausführen, indem Sie entweder das Windows Driver Kit (WDK) installieren oder das Enterprise Windows Driver Kit (EWDK) ausführen. Navigieren Sie zu dem Verzeichnis, in dem die Projektdatei des Treibers oder die Projektdatei der Bibliothek gespeichert ist. Die Parameter können in beliebiger Reihenfolge in der Befehlszeile angezeigt werden.

Hinweis

SDV ist bei der Installation des WDK in Visual Studio integriert und kann auch über das Menü "Treiber" über die IDE ausgeführt werden.

msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform

Sie müssen eine Releasekonfiguration auswählen (z. B. /p:Configuration="Windows 7 Release"). Eine Liste der unterstützten Releasekonfigurationen finden Sie unter Erstellen eines Treibers. Die Plattform kann Win32 (für x86) oder x64 (z. B. /p:Platform=Win32) sein.

Hinweis

Überprüfen Sie unbedingt den Energieverwaltungsplan Ihres Computers, um sicherzustellen, dass der Computer während der Analyse nicht in den Ruhezustand wechselt.

Parameter

/Scan

Überprüft den Quellcode des Treibers auf Funktionsrollentypdeklarationen. Informationen zum Deklarieren der vom Treiber bereitgestellten Rückruffunktionen und Dispatchroutinen finden Sie unter Verwenden von Funktionsrollentypdeklarationen. Während dieser Überprüfung versucht SDV, die Treibereinstiegspunkte zu erkennen, die zum Überprüfen des Treibers benötigt werden. Es zeichnet die Ergebnisse der Überprüfung in Sdv-map.h auf, einer Datei, die im Projektverzeichnis des Treibers erstellt wird.

Weitere Informationen finden Sie unter Vorbereiten des Quellcodes.

/check:Rule | ,...

Startet eine Überprüfung mit den angegebenen Regeln. Sie können mehrere Regeln angeben, indem Sie jede Regel durch ein Komma trennen. Führen Sie den Befehl /check: aus, und geben Sie die Visual Studio-Projektdatei des Treibers an (*.vcxproj).

Regel ist der Name einer Regel oder eines Regelnamenmusters, das Platzhalterzeichen (*) enthält, um ein oder mehrere Zeichen darzustellen. Bei alleiniger Verwendung stellt das Platzhalterzeichen (*) alle Regeln dar.

/check:RuleList.sdv

Startet eine Überprüfung mit den Regeln in der angegebenen Regellistendatei. Sie können nur eine Datei mit diesem Parameter auflisten. In der Regellistendatei kann jede Zeile der Name einer Regel oder ein Platzhalterzeichen (*) sein, das alle SDV-Regeln darstellt. Führen Sie den Befehl /check:RuleList.sdv aus, und geben Sie die Visual Studio-Projektdatei des Treibers an (*.vcxproj).

RuleList.sdv ist der vollqualifizierte Pfad und Dateiname einer Regellistendatei. Die Datei muss die Dateinamenerweiterung .sdv aufweisen. Sofern sich die Datei nicht im lokalen Verzeichnis befindet, ist der Pfad erforderlich. Wenn der Pfad oder Dateiname Leerzeichen enthält, müssen Sie RuleList einschließen.sdv in Anführungszeichen.

Wenn Sie die Option /check: angeben, ohne eine Regel anzugeben, wird SDV mit dem Standardregelsatz für das Treibermodell ausgeführt.

/Lib

Verarbeitet die Bibliothek im aktuellen Verzeichnis. SDV ruft MSBuild.exe auf, um die Bibliothek für die externe Verwendung zu kompilieren und zu erstellen, und generiert die Dateien, die benötigt werden, um die Bibliothek in die Treiberüberprüfung einzubeziehen.

Verwenden Sie diesen Parameter, bevor Sie Treiber überprüfen, die die Bibliothek erfordern. Führen Sie den Befehl msbuild /t:sdv /p:Inputs="/lib" aus, und geben Sie die Visual Studio-Projektdatei (*.vcxproj) für die Bibliothek an.

Weitere Informationen zur Verwendung und Wirkung des /lib-Parameters finden Sie unter Library Processing in Static Driver Verifier.

/ansehen

Öffnet die statische Treiberüberprüfung. Führen Sie / view-Befehle aus, und geben Sie die Visual Studio-Projektdatei des Treibers an (*.vcxproj).

Die Ergebnisse sind verfügbar, sobald eine Überprüfung abgeschlossen ist, und bleiben verfügbar, bis Sie einen Befehl /sauber verwenden, um die SDV-Dateien aus dem Projektverzeichnis des Treibers zu löschen.

/sauber

Löscht SDV-Dateien aus dem Verzeichnis. Da diese Dateien verwendet werden, um die Anzeige des statischen Treiberüberprüfungsberichts zu generieren, löscht der Befehl /sauber auch den Bericht der Überprüfung.

Führen Sie einen Befehl /sauber aus, und geben Sie die Visual Studio-Projektdatei (*.vcxproj) für den Treiber oder die Bibliothek an. Der Befehl löscht SDV-Dateien nur für das angegebene Projekt.

Führen Sie vor jeder Überprüfung einen Befehl /sauber für ein Treiberprojekt aus.

Führen Sie einen Befehl /sauber für eine Bibliothek aus, wenn die Bibliotheksdateien veraltet sind, z. B. wenn sich der Bibliothekscode ändert.

Ein Befehl /sauber entfernt die Datei Sdv-map.h nicht, wenn das genehmigte Flag in der Datei "Sdv-map.h" (Approved=true) auf true festgelegt ist. SDV kann diese Datei dann für zukünftige Überprüfungen verwenden.

/?

Zeigt die Nutzung für SDV-Befehle an. Befehle, die diesen Parameter verwenden, müssen nicht in einem Buildumgebungsfenster ausgeführt werden.

Kommentare

Wenn msbuild /t:/sdv p:/Inputs= /? ohne Parameter ausgeführt wird, wird die Verwendung für die SDV-Befehle angezeigt.

Ein /sauber-Befehl löscht die Dateien, die SDV zum Erstellen des Statischen Treiberüberprüfungsberichts für eine Überprüfung verwendet. Nach dem Ausführen dieses Befehls ist der Statische Treiberüberprüfungsbericht für die Überprüfung nicht mehr verfügbar.

Beispiele

So führen Sie SDV mit allen Regeln für die Treiberdateien im lokalen Verzeichnis für das Mydriver-Projekt aus:

msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

So führen Sie SDV mithilfe der CancelSpinLock-Regel für die Treiberdateien im lokalen Verzeichnis aus:

msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

So führen Sie SDV mithilfe der Regel aus, die in der Regellistendatei Rules1.sdv im Verzeichnis D:\SDV angegeben ist:

msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Um SDV erneut auszuführen, verwenden Sie dieses Mal die Option /sauber:

msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

So zeigen Sie die statische Treiberüberprüfung an, damit Sie die Ergebnisse für die letzte Überprüfung des Treibers im lokalen Verzeichnis anzeigen können:

msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Verwenden der statischen Treiberüberprüfung zum Auffinden von Fehlern in Windows-Treibern