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
- Starten Sie den Treiberüberprüfungs-Manager. Geben Sie "Verifier " in ein Eingabeaufforderungsfenster ein.
- Wählen Sie "Benutzerdefinierte Einstellungen erstellen" (für Codeentwickler) aus, und klicken Sie dann auf "Weiter".
- Wählen Sie "Einzelne Einstellungen auswählen" aus einer vollständigen Liste aus.
- Wählen Sie eine systematische Simulation mit geringen Ressourcen aus (Check).
- 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.