Freigeben über


Systematische Simulation geringer Ressourcen

Die Simulationsoption "Systematische Low Resources" fügt Ressourcenfehler in Kernelmodustreiber ein. Diese Option durchdringt Treiberfehlerbehandlungspfade. Das Testen dieser Wege war historisch sehr schwierig. Die Simulationsoption "Systematische Low Resources" fügt Ressourcenfehler vorhersehbar ein, wodurch die gefundenen Probleme reproduzierbar sind. Da die Fehlerpfade leicht zu reproduzieren sind, ist es auch einfach, Korrekturen für diese Probleme zu überprüfen.

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

Achtung Diese Option ist nicht für die Verwendung vorgesehen, wenn Sie alle Treiber (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ügte 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 Stürzen in Komponenten erzwingen, die nicht mit den treibern in Zusammenhang stehen, die Sie testen.

Hinweis Für Windows 8.1 wurde das Stack Based Failure Injection-Feature , das im WDK 8 verfügbar war, in die Treiberüberprüfung integriert. Verwenden Sie auf Computern, auf denen Windows 8.1 ausgeführt wird, die Simulationsoption "Systematische Low Resources".On computers running Windows 8.1, use the Systematic low resources simulation option.

Wenn die Simulationsoption für systematische low resources auf einem bestimmten Treiber aktiviert ist, werden einige Aufrufe von diesem Treiber an den Kernel abgefangen und Ndis.sys. Die systematische Simulation geringer Ressourcen untersucht den Aufrufstapel – insbesondere im Teil des Aufrufstapels, der vom Treiber stammt, auf dem er aktiviert ist. Wenn dies das erste Mal ist, dass dieser Stapel erkannt wurde, schlägt er den Aufruf gemäß der Semantik dieses Aufrufs fehl. Andernfalls wird der Anruf, wenn er diesen Anruf vorher gesehen hat, unberührt übergeben. Die systematische Simulation geringer Ressourcen enthält Logik, um sich mit der Tatsache zu befassen, dass ein Treiber mehrmals geladen und entladen werden kann. Es wird erkannt, dass ein Aufrufstapel identisch ist, auch wenn der Treiber an einem anderen Speicherort neu geladen wird.

Aktivieren dieser Option

Sie können das Simulationsfeature für systematische low resources 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 Simulationsoption für systematische low resources zu aktivieren oder zu deaktivieren.

  • An der Befehlszeile

    Windows 11

    An der Befehlszeile wird die systematische Simulation geringer Ressourcen durch verifier /rc 19 36 oder verifier /dif 19 dargestellt, die beide den erforderlichen DIF-Modus enthalten.

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

    Windows 10 und darunter

    An der Befehlszeile wird die systematische Simulation geringer Ressourcen durch prüfer /flags 0x040000 (Bit 18) dargestellt. Verwenden Sie zur systematischen Simulation geringer Ressourcen einen Flagwert 0x040000, oder fügen Sie 0x040000 zum Flagwert hinzu. Zum Beispiel:

    verifier /flags 0x040000 /driver MyDriver.sys
    

    Das Feature wird nach dem nächsten Start aktiv.

    Allgemein

    Wenn Sie die Simulation option "Systematische Low Resources" aktivieren, können Sie die Befehlszeilenoption "/faultssystematic OPTION " verwenden, um die Simulation systematischer geringer Ressourcen weiter zu steuern.

    OPTION Beschreibung

    enableboottime

    Aktiviert Fehlereinfügungen über Computerneustarts hinweg.

    disableboottime

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

    recordboottime

    Aktiviert Fehlereinfügungen im Modus über Computerneustarts hinweg.

    resetboottime

    Deaktiviert Fehlereinfügungen über Computerneustarts hinweg und löscht die Stapelausschlussliste.

    enableruntime

    Aktiviert dynamisch Fehlereinfügungen.

    disableruntime

    Deaktiviert fehlereinfügungen dynamisch.

    recordruntime

    Aktiviert dynamisch Fehlereinfügungen im Modus.

    resetruntime

    Deaktiviert Fehlereinfügungen dynamisch und löscht die zuvor fehlerhafte Stapelliste.

    Abfragestatistiken

    Zeigt die aktuelle Fehlereinfügungsstatistik an.

    incrementcounter

    Erhöht den Testdurchlaufzähler, der verwendet wird, um zu ermitteln, wann ein Fehler eingefügt wurde.

    getstackid COUNTER

    Ruft den angegebenen eingefügten Stapelbezeichner ab.

    excludestack STACKID

    Schließt den Stapel aus der Fehlereinfügung 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 auswählen" aus einer vollständigen Liste aus.
    4. Wählen Sie eine systematische Simulation mit geringen Ressourcen aus (Check).
    5. Starten Sie den Computer neu.

Debuggen von Fehlerüberprüfungen durch systematische Simulation geringer Ressourcen

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

So führen Sie die Debuggererweiterung aus

  • Geben Sie an der Eingabeaufforderung des Debuggers den folgenden Befehl ein:

    !verifier 0x800
    

Dadurch werden Informationen im Debugger mit den Aufrufstapeln aus den letzten eingefügten Fehlern abgeladen.