Deaktivieren des Watchdog-Timers beim Testen von Anzeigetreibern

In Microsoft Windows XP SP1 und höheren Betriebssystemen verwendet GDI einen Watchdog-Timer, um die Zeit zu überwachen, die Threads für die Ausführung im Anzeigetreiber aufwenden. Der Watchdog definiert einen Zeitschwellenwert. Wenn ein Thread mehr Zeit in einem Anzeigetreiber verbringt, als der Schwellenwert angibt, versucht der Watchdog, die Wiederherstellung durchzuführen, indem er in den VGA-Grafikmodus wechselt. Wenn der Versuch fehlschlägt, generiert der Watchdog eine Fehlerüberprüfung 0xEA, THREAD_STUCK_IN_DEVICE_DRIVER.

Wenn Sie während des Debuggens und Testens Softwareemulation für das Rendering verwenden, das schließlich von einem Grafikkarte ausgeführt wird, müssen Sie möglicherweise den Schwellenwert für die Watchdog-Zeit erhöhen. Andernfalls ist es wahrscheinlich, dass der Emulationscode, der deutlich langsamer gerendert wird als die Hardware, den Schwellenwert überschreitet.

Um den Schwellenwert für die Watchdog-Zeit für Anzeigetreiber anzugeben, erstellen Sie den folgenden REG_DWORD Eintrag in der Registrierung:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Watchdog\Display\BreakPointDelay

Legen Sie den Wert von BreakPointDelay auf den Watchdog-Zeitschwellenwert in Einheiten von 10 Sekunden fest. Ein Wert von 200 gibt beispielsweise einen Schwellenwert von 2.000 Sekunden an.

Wenn Sie Ihren Anzeigetreiber ohne angefügten Debugger testen, können Sie verhindern, dass der Watchdog-Timer eine Fehlerüberprüfung generiert. Erstellen Sie hierzu den folgenden REG_DWORD Eintrag in der Registrierung, und legen Sie den Wert auf 1 fest:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Watchdog\Display\DisableBugCheck

Die in diesem Thema beschriebenen Techniken dienen nur zum Debuggen und Testen. Geben Sie keinen Treiber frei, der BreakPointDelay oder DisableBugCheck erstellt oder ändert.