Kernelsynchronisierung verzögerungsfuzzing

Hinweis

Diese Überprüfung ist ab Windows 10 Build 19042 und höher veraltet.

Mit der Option Kernelsynchronisierungsverzögerung werden Threadzeitpläne randomisiert, um Parallelitätsfehler in Treibern zu erkennen.

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 Diese Option ist ab Windows 8.1 verfügbar.

Wenn die Option ausgewählt ist, fügt Driver Verifier zufällige Verzögerungen an verschiedenen Stellen in den Threads ein. Wie die Power Framework-Option Verzögerungsfuzzing verwendet die Kernelsynchronisierungsverzögerungs-Option einen Algorithmus, der hilft, die Wahrscheinlichkeit von Fehlern in Treibern zu verbessern. Das Verzögerungsfuzzing der Kernelsynchronisierung verbessert sich bei herkömmlichen Stresstests, bei denen das Testprogramm tage- oder sogar wochenlang ausgeführt wird, in der Hoffnung, Probleme abzufangen, die bei gleichzeitiger Ausführung auftreten können.

Aktivieren dieser Option

Sie können die Kernelsynchronisierungsverzögerungsfunktion 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 Power Framework-Option Verzögerungsfuzzing zu aktivieren oder zu deaktivieren.

Hinweis Die Kernelsynchronisierungsverzögerungsoption erhöht die Wahrscheinlichkeit, dass Racebedingungen zur Laufzeit auftreten, indem zufällige Verzögerungen bei verschiedenen Kernel-API-Funktionsaufrufen eingefügt werden. Damit diese Verzögerungen effektiver sind, können Sie diese Option mit anderen Treiberüberprüfungsoptionen aktivieren. Aufgrund der Verzögerungen, die eingeführt werden können, können Sie erwarten, dass der Computer langsamer reagiert.

  • An der Befehlszeile

    In der Befehlszeile wird die Kernelsynchronisierungsverzögerung durch Prüfer /flags 0x00800000 (Bit 23) dargestellt. Verwenden Sie zum Aktivieren von Power Framework Delay Fuzzing den Flagwert 0x00800000, oder fügen Sie dem Flagwert 0x00800000 hinzu. Beispiel:

    verifier /flags 0x00800000 /driver MyDriver.sys
    

    Das Feature ist nach dem nächsten Start aktiv.

  • 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) Die Kernelsynchronisierung verzögert das Fuzzing aus.
    5. Starten Sie den Computer neu.

Warum verzögert das Fuzzing der Kernelsynchronisierung?

Die meisten Treiberroutinen sind wiederholt und gleichzeitig. Fehler im Zusammenhang mit Parallelität sind notorisch schwer zu finden. Fehler können Deadlocks und Racebedingungen umfassen, die durch Synchronisierungsprobleme und schlechtes Timing zwischen Threads verursacht werden. Stresstests sind das herkömmliche Testverfahren zum Auffinden dieser Fehler, aber es kann langsam und teuer sein, und die Ergebnisse sind nicht immer reproduzierbar. Die Option Verzögerungsfuzzing der Kernelsynchronisierung erhöht die Wahrscheinlichkeit, dass Racebedingungen zur Laufzeit auftreten, indem randomisierte Verzögerungen in verschiedene Aufrufe der Kernel-API-Funktion eingefügt werden. Wenn beispielsweise eine Rennbedingung dazu führt, dass ein Fahrer auf IRP zugreift, nachdem dieser abgebrochen wurde, erhöht die Option Kernelsynchronisierungsverzögerung die Wahrscheinlichkeit dieser Rennbedingung so, dass der Driver Verifier den Fehler während des Tests erkennt. Die Kernelsynchronisierungsverzögerungsoption verbessert die Leistungsfähigkeit und Effektivität von Driver Verifier.