Treiberüberprüfung

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

  • Die Ausführung 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. (Die Treiberüberprüfung ist nicht in Windows 10 S enthalten, daher wird empfohlen, das Treiberverhalten stattdessen auf Windows 10 zu testen.) Driver Verifier wird nicht separat als Downloadpaket verteilt.

Informationen zu Änderungen an der Treiberüberprüfung für Windows 10 und früheren Versionen von Windows finden Sie unter Driver Verifier: What's New.

Wann sollte die Treiberüberprüfung verwendet werden?

Führen Sie die Driver Verifier während der gesamten Entwicklung und Tests Ihres Treibers aus. Verwenden Sie insbesondere driver verifier für die folgenden Zwecke:

  • Um Probleme frühzeitig im Entwicklungszyklus zu finden, wenn sie einfacher und kostengünstiger zu beheben sind.

  • Zur Problembehandlung und Zum Debuggen von Testfehlern und Computerabstürzen.

  • So überwachen Sie das Verhalten, wenn Sie einen Treiber für Tests mithilfe des WDK, Visual Studio und der 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.

Starten der 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 Debugtools finden Sie unter Debuggen von Tools für Windows (WinDbg, KD, CDB, NTSD).

  1. Starten Sie ein Eingabeaufforderungsfenster , indem Sie Als Administrator ausführen und Überprüfung eingeben, um den Treiberüberprüfungs-Manager zu öffnen.

  2. Wählen Sie Standardeinstellungen erstellen (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.

  3. Wählen Sie unter Zu überprüfende Treiber auswählen eines der in der folgenden Tabelle beschriebenen Auswahlschemas aus.

    Option Empfohlene Verwendung
    Automatische Auswahl von nicht signierten Treibern

    Nützlich für Tests auf Computern, auf denen Windows-Versionen ausgeführt werden, die keine signierten Treiber erfordern.

    Automatisches Auswählen von Treibern, die für ältere Windows-Versionen erstellt wurden

    Nützlich zum Testen der Treiberkompatibilität mit neueren Versionen von Windows.

    Automatische Auswahl aller treiber, die auf diesem Computer installiert sind

    Bietet maximale Abdeckung in Bezug auf die 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 Spezialpool und die Ressourcennachverfolgung erschö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 sollten 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 Konformität überprüfen, da ein E/A-Anforderungspaket (IRP) zwischen den einzelnen Treibern im Stapel übergeben wird, sodass ein größerer Detailgrad bereitgestellt werden kann, 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 zur Erkennung von Speicherbeschädigungen oder Ressourcennachverfolgungsproblemen (z. B. Deadlocks oder Mutexes) verfügbar sind. Die Optionen "Special Pool" und "E/A-Überprüfung" sind effektiver, wenn sie jeweils für einen Treiber verwendet werden.

  4. Wenn Sie Treibernamen aus einer Liste auswählen ausgewählt haben, wählen Sie Weiter und dann einen oder mehrere spezifische Treiber aus.

  5. Wählen Sie Fertig stellen aus, und starten Sie dann den Computer neu.

Hinweis

Wenn Sie die Treiberüberprüfung mit den Windows-Versionen 20150 bis 25126 verwenden, erhalten Sie möglicherweise einen ungültigen Zustandsfehler, wenn Sie ntoskrnl ausgewählt haben.
Um dieses Problem zu vermeiden, deaktivieren Sie ntoskrnl , oder führen Sie nach Build 25126 ein Upgrade auf eine Windows-Version 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. Um beispielsweise die Treiberüberprüfung mit den Standardeinstellungen für einen Treiber namens myDriver.sysauszuführen, verwenden Sie den folgenden Befehl:

verifier /standard /driver myDriver.sys

Weitere Informationen zu Befehlszeilenoptionen finden Sie unter Befehlssyntax der Treiberüberprüfung.

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 Starten der 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

  1. Wählen Sie im Treiberüberprüfungs-Managervorhandene Einstellungen löschen und dann Fertig stellen aus.

    oder

    Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:

    verifier /reset
    
  2. Starten Sie den Computer neu.

So zeigen Sie Treiberüberprüfungsstatistiken an

Wählen Sie im Treiberüberprüfungs-ManagerDie Option Informationen zu den aktuell überprüften Treibern anzeigen und dann Weiter aus. Wenn Sie weiter Weiter auswählen, werden zusätzliche Informationen angezeigt.

oder

Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:

verifier /query

So zeigen Sie Treiberüberprüfungseinstellungen an

Wählen Sie im Treiberüberprüfungs-Managervorhandene Einstellungen anzeigen und dann Weiter aus.

oder

Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:

verifier /querysettings

Debuggen von Verstößen gegen die Treiberüberprüfung

Um den größten Nutzen von Driver Verifier zu erzielen, sollten Sie einen Kerneldebugger verwenden und ihn mit dem Testcomputer verbinden. Eine Übersicht über die Debugtools für Windows finden Sie unter Debuggen von Tools 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 bestmöglichen Informationen zum Debuggen des Problems. Wenn Sie einen Kerneldebugger mit einem Testcomputer verbunden haben, auf dem die Treiberüberprüfung ausgeführt wird, und Driver Verifier eine Verletzung erkennt, wird der Debugger von Windows mit einer kurzen Beschreibung des Fehlers angezeigt.

Alle von Driver Verifier erkannten Verstöße führen zu Fehlerüberprüfungen. Dies ist in der Regel eine Fehlerüberprüfung 0xC4. Weitere Informationen finden Sie unter Debugging Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION and Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.

Weitere gängige Fehlerüberprüfungscodes sind:

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 Fehlerprüfung an. Fügen Sie dem Befehl an der kd-Eingabeaufforderung> die Option -v hinzu, um zusätzliche Informationen anzuzeigen, 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 -? , um alle verfügbaren Optionen anzuzeigen.

    kd> !verifier
    
  • !Deadlock zeigt Informationen zu Sperren oder Objekten an, die von der Deadlockerkennungsfunktion der Driver Verifier nachverfolgt werden. Verwenden Sie !deadlock -? , um alle verfügbaren Optionen anzuzeigen.

    kd> !deadlock
    
  • !iovirp [adresse] zeigt Informationen im Zusammenhang mit einem IRP an, das von der E/A-Überprüfung nachverfolgt wird. Beispiel:

    kd> !iovirp 947cef68
    
  • Suchen Sie nach der DDI-Konformitätsprüfungsregel , die verletzt wurde. (RuleID ist immer das erste Argument für die Fehlerprüfung.) Alle Regel-IDs aus der DDI-Konformitätsüberprüfung haben die Form 0x200nn.

Treiberüberprüfungsoptionen

Befehlssyntax der Treiberüberprüfung

Verwenden der Treiberüberprüfung

Steuern der Treiberüberprüfung

DDI-Konformitätsüberprüfung