Driver Verifier
Driver Verifier überwacht Treiber und Grafiktreiber im Windows-Kernelmodus und Grafiktreiber, um unzulässige Funktionsaufrufe oder Aktionen zu erkennen, die das System beschädigen könnten. Die Treiberüberprüfung kann Windows-Treiber einer Vielzahl von Belastungstests und Überprüfungen unterziehen, um falsches Verhalten zu ermitteln. Sie können konfigurieren, welche Tests ausgeführt werden sollen, um einen Treiber hohen Belastungen auszusetzen oder optimierte Tests durchzuführen. Sie können die Treiberüberprüfung für mehrere Treiber gleichzeitig oder für einzelne Treiber ausführen.
Achtung
- Das Ausführen der Treiberüberprüfung kann dazu führen, dass der Computer abstürzt.
- Sie sollten die Treiberüberprüfung nur auf Computern ausführen, die Sie zum Testen und Debuggen verwenden.
- Sie müssen auf dem Computer der Gruppe „Administratoren“ angehören, um die Treiberüberprüfung verwenden zu können.
Wo kann ich Driver Verifier herunterladen?
Sie müssen die Treiberüberprüfung nicht herunterladen, da sie in den meisten Versionen von Windows in %WinDir%\system32\ als Verifier.exe enthalten ist. (Treiberüberprüfung ist nicht in Windows 10 S enthalten. Daher empfehlen wir stattdessen das Testen des Treiberverhaltens unter Windows 10.) Die Treiberüberprüfung wird nicht separat als Downloadpaket verteilt.
Informationen zu Änderungen in der Treiberüberprüfung für Windows 10 und früheren Versionen von Windows finden Sie unter Driver Verifier: What's New.
Gründe für die Verwendung von Driver Verifier
Führen Sie driver Verifier während der gesamten Entwicklung und tests Ihres Treibers aus. Verwenden Sie "Driver Verifier" genauer zu den folgenden Zwecken:
Um Probleme frühzeitig im Entwicklungszyklus zu finden, wenn sie einfacher und kostengünstiger zu korrigieren sind.
Zur Problembehandlung und zum Debuggen von Testfehlern und Computerabstürzen.
So überwachen Sie das Verhalten, wenn Sie einen Treiber für Tests mithilfe von WDK, Visual Studio und den Tests aus dem Windows Hardware Lab Kit (Windows HLK) oder dem Windows Hardware Certification Kit (für Windows 8.1) bereitstellen. Weitere Informationen zum Testen von Treibern finden Sie unter Testen eines Treibers.
Wichtig
Das Windows-Hardwarekompatibilitätsprogramm erfordert CodeQL für STL-Tests (Static Tool Logo) auf unseren Client- und Serverbetriebssystemen. Wir werden weiterhin unterstützung für SDV und CA für ältere Produkte Standard. Partner werden dringend ermutigt, die CodeQL-Anforderungen für den Logotest für statische Tools zu überprüfen. Weitere Informationen zur Verwendung von CodeQL finden Sie unter CodeQL und dem Logotest für statische Tools.
So starten Sie die Treiberüberprüfung
Sie sollten die Treiberüberprüfung nur auf Testcomputern oder auf Computern ausführen, die Sie testen und debuggen. Um den größten Nutzen von Driver Verifier zu erzielen, sollten Sie einen Kerneldebugger verwenden und eine Verbindung mit dem Testcomputer herstellen. Weitere Informationen zu Debuggingtools finden Sie unter Debugtools für Windows (WinDbg, KD, CDB, NTSD).
Starten Sie ein Eingabeaufforderungsfenster, indem Sie "Als Administrator ausführen" auswählen und "Verifier" eingeben, um den Treiberüberprüfungs-Manager zu öffnen.
Wählen Sie "Standardeinstellungen erstellen" (die Standardaufgabe) und dann "Weiter" aus.
Sie können auch "Benutzerdefinierte Einstellungen erstellen" auswählen, um aus vordefinierten Einstellungen auszuwählen oder einzelne Optionen auszuwählen. Weitere Informationen finden Sie unter Treiberüberprüfungsoptionen und Regelklassen und auswählen von Treiberüberprüfungsoptionen.
Wählen Sie unter "Überprüfen der zu überprüfenden Treiber" eines der in der folgenden Tabelle beschriebenen Auswahlschemas aus.
Option Empfohlene Verwendung Automatisches Auswählen nicht signierter Treiber Nützlich für Tests auf Computern, auf denen Windows-Versionen ausgeführt werden, für die keine signierten Treiber erforderlich sind.
Automatisches Auswählen von Treibern, die für ältere Versionen von Windows erstellt wurden Nützlich zum Testen der Treiberkompatibilität mit neueren Versionen von Windows.
Automatisches Auswählen aller auf diesem Computer installierten Treiber Bietet eine maximale Abdeckung hinsichtlich der Anzahl der Treiber, die auf einem System getestet werden. Diese Option ist nützlich für Testszenarien, in denen ein Treiber mit anderen Geräten oder Treibern auf einem System interagieren kann.
Diese Option kann auch die verfügbaren Ressourcen für den speziellen Pool und einige Ressourcennachverfolgungen ausschöpfen. Das Testen aller Treiber kann sich auch negativ auf die Systemleistung auswirken.
Auswählen von Treibernamen aus einer Liste In den meisten Fällen möchten Sie angeben, welche Treiber getestet werden sollen.
Wenn Sie alle Treiber in einem Gerätestapel auswählen, kann die Option "Erweiterte E/A-Überprüfung " Objekte nachverfolgen und die Compliance überprüfen, da ein E/A-Anforderungspaket (IRP) zwischen den einzelnen Treibern im Stapel übergeben wird, was eine höhere Detailebene ermöglicht, wenn ein Fehler erkannt wird.
Wählen Sie einen einzelnen Treiber aus, wenn Sie ein Testszenario ausführen, das System- oder Treiberleistungsmetriken misst, oder wenn Sie die größte Anzahl von Ressourcen zuordnen möchten, die zum Erkennen von Speicherbeschädigungs- oder Ressourcennachverfolgungsproblemen (z. B. Deadlocks oder Mutexes) verfügbar sind. Die Optionen für spezielle Pools und E/A-Überprüfungen sind effektiver, wenn sie jeweils für einen Treiber verwendet werden.
Wenn Sie in einer Liste "Treibernamen auswählen" ausgewählt haben, wählen Sie "Weiter" und dann einen oder mehrere bestimmte Treiber aus.
Wählen Sie "Fertig stellen" aus, und starten Sie den Computer dann neu.
Hinweis
Wenn Sie die Treiberüberprüfung mit Windows-Versionen 20150 bis 25126 verwenden, erhalten Sie möglicherweise einen ungültigen Statusfehler, wenn Sie ntoskrnl ausgewählt haben.
Um dieses Problem zu vermeiden, heben Sie die Auswahl von ntoskrnl auf, oder führen Sie ein Upgrade auf eine Windows-Version nach Build 25126 durch.
Ausführen der Treiberüberprüfung an einer Eingabeaufforderung
Sie können die Treiberüberprüfung auch in einem Eingabeaufforderungsfenster ausführen, ohne den Treiberüberprüfungs-Manager zu starten. Wenn Sie beispielsweise die Treiberüberprüfung mit den Standardeinstellungen für einen Treiber namens myDriver.sys ausführen möchten, verwenden Sie den folgenden Befehl:
verifier /standard /driver myDriver.sys
Weitere Informationen zu Befehlszeilenoptionen finden Sie unter Driver Verifier Command Syntax.
Steuern der Treiberüberprüfung
Sie können entweder den Treiberüberprüfungs-Manager oder eine Befehlszeile verwenden, um die Treiberüberprüfung zu steuern. Informationen zum Starten des Treiberüberprüfungs-Managers finden Sie weiter oben in diesem Thema unter "Treiberüberprüfung".
Für jede der folgenden Aktionen können Sie den Treiberüberprüfungs-Manager verwenden oder eine Befehlszeile eingeben.
So beenden oder zurücksetzen Sie die Treiberüberprüfung
Wählen Sie im Treiberüberprüfungs-Manager vorhandene Einstellungen löschen und dann "Fertig stellen" aus.
oder
Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:
verifier /reset
Starten Sie den Computer neu.
So zeigen Sie die Statistiken zur Treiberüberprüfung an
Wählen Sie im Treiberüberprüfungs-Manager die Option "Informationen zu den aktuell überprüften Treibern anzeigen" und dann "Weiter" aus. Wenn Sie "Weiter" auswählen, werden weitere Informationen angezeigt.
oder
Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:
verifier /query
So zeigen Sie die Einstellungen für die Treiberüberprüfung an
Wählen Sie im Treiberüberprüfungs-Manager vorhandene Einstellungen anzeigen und dann "Weiter" aus.
oder
Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:
verifier /querysettings
So debuggen Sie Treiberüberprüfungsverletzungen
Um den größten Nutzen von Driver Verifier zu erzielen, sollten Sie einen Kerneldebugger verwenden und mit dem Testcomputer verbinden. Eine Übersicht über Debuggingtools für Windows finden Sie unter Debugtools für Windows (WinDbg, KD, CDB, NTSD).
Wenn driver Verifier einen Verstoß erkennt, wird eine Fehlerüberprüfung generiert, um den Computer zu beenden. Dadurch erhalten Sie die meisten Informationen zum Debuggen des Problems. Wenn ein Kerneldebugger mit einem Testcomputer verbunden ist, auf dem Driver Verifier ausgeführt wird, und die Treiberüberprüfung erkennt einen Verstoß, wechselt Windows in den Debugger und zeigt eine kurze Beschreibung des Fehlers an.
Alle Verstöße, die von der Treiberüberprüfung erkannt wurden, führen zu Fehlerüberprüfungen. Dies ist in der Regel eine Fehlerüberprüfung 0xC4. Weitere Informationen finden Sie unter Debugfehlerüberprüfung 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION und 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.
Andere gängige Fehlerüberprüfungscodes umfassen Folgendes:
- Fehlerüberprüfung 0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
- Fehlerüberprüfung 0xC6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
- Fehlerüberprüfung 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
- Fehlerüberprüfung 0xD6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
- Fehlerüberprüfung 0xE6: DRIVER_VERIFIER_DMA_VIOLATION
Weitere Informationen finden Sie unter Behandeln einer Fehlerüberprüfung, wenn die Treiberüberprüfung aktiviert ist.
Wenn Sie eine neue Debugsitzung starten, verwenden Sie den Debuggererweiterungsbefehl ! analyze. Im Kernelmodus zeigt der Befehl "!analyze " Informationen zur neuesten Fehlerüberprüfung an. Um zusätzliche Informationen anzuzeigen, fügen Sie option -v zum Befehl an der kd-Eingabeaufforderung> hinzu, um den fehlerhaften Treiber zu identifizieren:
kd> !analyze -v
Zusätzlich zu !analyze können Sie die folgenden Debuggererweiterungen an der kd-Eingabeaufforderung> eingeben, um Informationen anzuzeigen, die für die Treiberüberprüfung spezifisch sind:
!verifier dumps captured Driver Verifier statistics. Verwenden Sie !verifier -? zum Anzeigen aller verfügbaren Optionen.
kd> !verifier
!deadlock zeigt Informationen zu Sperren oder Objekten an, die von der Deadlock-Erkennungsfunktion von Driver Verifier nachverfolgt werden. Verwenden Sie !deadlock -? zum Anzeigen aller verfügbaren Optionen.
kd> !deadlock
!iovirp [Adresse] zeigt Informationen zu einem von E/O Verifier nachverfolgten IRP an. Zum Beispiel:
kd> !iovirp 947cef68
Suchen Sie nach der DDI-Complianceüberprüfungsregel , die verletzt wurde. (RuleID ist immer das erste Argument für die Fehlerprüfung.) Alle Regel-IDs der DDI-Complianceüberprüfung befinden sich in form 0x200nn.
Zugehörige Themen
Syntax des Treiberüberprüfungsbefehls
Verwenden der Treiberüberprüfung