Systematische Simulation mit geringen Ressourcen

Die Option Systematische Simulation mit niedrigen Ressourcen fügt Ressourcenfehler in Kernelmodustreiber ein. Diese Option durchdringt Treiberfehlerbehandlungspfade. Das Testen dieser Pfade war in der Vergangenheit sehr schwierig. Die Option Systematische Simulation mit niedrigen Ressourcen führt zu Ressourcenausfällen auf vorhersagbare Weise, wodurch die gefundenen Probleme reproduzierbar sind. Da die Fehlerpfade einfach zu reproduzieren sind, ist es auch einfach, Korrekturen für diese Probleme zu überprüfen.

Um die Grundursache des Fehlers zu ermitteln, wird eine Debuggererweiterung bereitgestellt, die Ihnen genau mitteilen kann, welche Fehler in welche Reihenfolge eingefügt wurden.

Vorsicht Diese Option ist nicht für die Verwendung vorgesehen, wenn Sie alle (oder eine große Sammlung von) Treibern auf einem Computer überprüfen. Diese Option sollte nur verwendet werden, wenn Sie gezielte Tests einzelner Treiber oder deren angefügten Filtertreiber durchführen. Wenn Sie diese Option für eine große Anzahl von Treibern gleichzeitig verwenden, kann dies zu unvorhersehbaren Ergebnissen führen und abstürze in Komponenten erzwingen, die nicht mit den von Ihnen getesteten Treibern zusammenhängen.

Hinweis Für Windows 8.1 wurde das feature Stack Based Failure Injection, das im WDK 8 verfügbar war, in driver verifier integriert. Verwenden Sie auf Computern, auf denen Windows 8.1 ausgeführt wird, die Option Systematische Simulation mit niedrigen Ressourcen.

Wenn die Option Systematische Simulation mit niedrigen Ressourcen für einen bestimmten Treiber aktiviert ist, fängt sie einige Aufrufe dieses Treibers an den Kernel und Ndis.sys ab. Bei der systematischen Simulation mit niedrigen Ressourcen wird der Aufrufstapel untersucht, insbesondere der Teil des Aufrufstapels, der von dem Treiber stammt, für den er aktiviert ist. Wenn dies das erste Mal ist, dass dieser Stapel angezeigt wird, schlägt der Aufruf gemäß der Semantik dieses Aufrufs fehl. Andernfalls wird der Anruf, wenn er diesen Aufruf bereits gesehen hat, unberührt durchlaufen. Die systematische Simulation mit geringen Ressourcen enthält Logik, um mit der Tatsache umzugehen, dass ein Treiber mehrmals geladen und entladen werden kann. Er erkennt, dass ein Aufrufstapel identisch ist, auch wenn der Treiber an einem anderen Speicherort neu geladen wird.

Aktivieren dieser Option

Sie können die Funktion Systematische Simulation mit niedrigen Ressourcen für einen oder mehrere Treiber aktivieren, indem Sie den Treiberüberprüfungs-Manager oder die Verifier.exe Befehlszeile verwenden. Ausführliche Informationen finden Sie unter Auswählen von Treiberüberprüfungsoptionen. Sie müssen den Computer neu starten, um die Option Systematische Simulation mit niedrigen Ressourcen zu aktivieren oder zu deaktivieren.

  • An der Befehlszeile

    Windows 11

    In der Befehlszeile wird die Systematische Simulation mit niedrigen Ressourcen durch verifier /rc 19 36 oder verifier /dif 19 dargestellt, die beide den erforderlichen DIF-Modus enthalten.

    Das Feature ist nach dem nächsten Start oder sofort aktiv, wenn der Befehlszeichenfolge /now hinzugefügt wird.

    Windows 10 und unten

    In der Befehlszeile wird die Systematische Simulation mit niedrigen Ressourcen durch prüfer /flags 0x040000 (Bit 18) dargestellt. Verwenden Sie zur Simulation systematischer ressourcenarmer Ressourcen den Flagwert 0x040000, oder fügen Sie dem Flagwert 0x040000 hinzu. Beispiel:

    verifier /flags 0x040000 /driver MyDriver.sys
    

    Das Feature ist nach dem nächsten Start aktiv.

    Allgemein

    Wenn Sie die Option Systematische Simulation mit niedrigen Ressourcen aktivieren, können Sie die Befehlszeilenoption /faultssystematicOPTION verwenden, um die Simulation systematischer ressourcenarmer Ressourcen weiter zu steuern.

    OPTION BESCHREIBUNG

    enableboottime

    Aktiviert Fehlereinschleusungen über Computerneustarts hinweg.

    disableboottime

    Deaktiviert Fehlereinschleusungen über Computerneustarts hinweg (dies ist die Standardeinstellung).

    recordboottime

    Aktiviert Fehlerinjektionen im Was-wäre-wenn-Modus für computerübergreifende Neustarts.

    resetboottime

    Deaktiviert Fehlereinschleusungen bei Computerneustarts und löscht die Stapelausschlussliste.

    enableruntime

    Ermöglicht Fehlereinschleusungen dynamisch.

    disableruntime

    Deaktiviert Fehlereinschleusungen dynamisch.

    recordruntime

    Dynamisches Aktivieren von Fehlerinjektionen im Was-wäre-wenn-Modus .

    resetruntime

    Deaktiviert Fehlereinschleusungen dynamisch und löscht die zuvor fehlerhafte Stapelliste.

    querystatistics

    Zeigt die aktuellen Fehlerinjektionsstatistiken an.

    incrementcounter

    Erhöht den Testdurchlaufzähler, mit dem ermittelt wird, wann ein Fehler eingefügt wurde.

    getstackid COUNTER

    Ruft den angegebenen eingefügten Stapelbezeichner ab.

    excludestack STACKID

    Schließt den Stapel von der Fehlerinjektion aus.

  • Verwenden des Treiberüberprüfungs-Managers

    1. Starten Sie den Treiberüberprüfungs-Manager. Geben Sie Verifier in ein Eingabeaufforderungsfenster ein.
    2. Wählen Sie Benutzerdefinierte Einstellungen erstellen (für Codeentwickler) aus, und klicken Sie dann auf Weiter.
    3. Wählen Sie Einzelne Einstellungen aus einer vollständigen Liste auswählen aus.
    4. Wählen Sie (überprüfen) Systematische Simulation mit geringen Ressourcen aus.
    5. Starten Sie den Computer neu.

Debuggen von Fehlerüberprüfungen, die durch eine systematische Simulation mit geringen Ressourcen verursacht wurden

Die meisten Probleme, die bei der Simulation systematischer ressourcenarmer Ressourcen gefunden wurden, führen zu Fehlerüberprüfungen. Um die Ursache dieser Codefehler zu ermitteln, stellen die Debugtools für Windows die Debuggererweiterung (kdexts.dll) und die erforderlichen Symbole bereit.

So führen Sie die Debuggererweiterung aus

  • Geben Sie an der Debuggereingabeaufforderung den folgenden Befehl ein:

    !verifier 0x800
    

Dadurch werden Informationen an Ihren Debugger mit den Aufrufstapeln der zuletzt eingefügten Fehler angezeigt.