Windows stop THREAD_STUCK_IN_DEVICE_DRIVER Fehler

Die THREAD_STUCK_IN_DEVICE_DRIVER-Fehlermeldung tritt auf, wenn ein Gerätetreiber in einer Endlosschleife hängen bleibt und darauf wartet, dass die zugeordnete Hardware inaktiv wird.

Dieses Problem ist häufig das Ergebnis eines Hardwareproblems oder eines Problems mit dem Gerätetreiber, der versucht, die Hardware zu programmieren. Dieser Fehler tritt häufiger bei defekten Grafikkarten oder Grafikkartentreibern auf.

Lösungen für Endbenutzer

Wenn Sie ein Endbenutzer sind (der den Treiber nicht entwickelt) und dieser Fehler auftritt, suchen Sie nach aktualisierten Treibern für Ihr Gerät. Wenn keine aktualisierten Treiber vorhanden sind und keine neue Hardware hinzugefügt wurde, kann davon ausgegangen werden, dass die Hardware des Computers ausgefallen ist und ersetzt werden sollte.

Entwicklerlösungen

Wenn Sie den Treiber entwickeln oder versuchen, dieses Problem zu beheben, verwenden Sie den Befehl .thread ( Set Register Context ). Verwenden Sie dann den Befehl kb ( Display Stack Backtrace ), um herauszufinden, wo der Thread hängen bleibt.

Es ist möglicherweise möglich, Informationen im Debugger zu verwenden, um dieses Problem ebenfalls zu beheben. DbgBreakPoint wird aufgerufen, wenn der Fehler auftritt, wenn der Kernel-Debugger bereits ausgeführt wurde, als Windows den Fehler oder die Zeitüberschreitungsbedingung feststellte . In diesem Fall wird KeBugCheckEx nicht aufgerufen, und der Befehl .bugcheck ( Display Bug Check Data ) enthält keine nützlichen Informationen (falls überhaupt).

Der Debugger enthält ähnliche Informationen wie die obigen Parameter. Sie können die vier Parameter weiterhin anzeigen, indem Sie sie aus den globalen Variablen des Watchdog abrufen, indem Sie einen der beiden Befehle verwenden, je nach Betriebssystem.

  • 32-Bit-System: dd Watchdog! G_WdBugCheckData L5
  • 64-Bit-System: dq watchdog! G_WdBugCheckData L5

Durch Verwenden dieser interaktiven Methode zum Debuggen des Fehlers können Sie den Thread finden, der den Fehler verursacht, Haltepunkte im Thread festlegen und später den Befehl g (Go) verwenden, um den Schleifencode zu debuggen.