Windows stopper THREAD_STUCK_IN_DEVICE_DRIVER fejl

Fejemeddelelsen THREAD_STUCK_IN_DEVICE_DRIVER opstår, når en enhedsdriver sidder fast i en uendelig sløjfe, og venter på, at den tilhørende hardware bliver ledig.

Problemet skyldes ofte et hardwareproblem eller et problem med enhedsdriveren, der forsøger at programmere hardwaren. Denne fejl opstår mere almindeligt med et defekt video- eller grafikkortdriver.

Slutbrugerløsninger

Hvis du er en slutbruger (ikke udvikler driveren) og støder på denne fejl, skal du kontrollere, om der er opdaterede drivere til din enhed. Hvis der ikke er opdaterede drivere, og der ikke er tilføjet nogen ny hardware, er det sikkert at antage, at hardware i computeren er mislykket og skal udskiftes.

Udviklerløsninger

Hvis du er udvikleren af ​​driveren eller forsøger at debugge dette problem, skal du bruge kommandoen .thread ( Set Register Context ). Derefter finder du kb ( Display Stack Backtrace ) kommandoen for at finde, hvor tråden sidder fast.

Det kan være muligt at bruge oplysninger i debuggeren til også at løse dette problem. DbgBreakPoint vil blive kaldt, når fejlen opstår, hvis kernel debugger allerede kørte, da Windows opdagede fejlen eller time-out tilstanden. I dette tilfælde vil KeBugCheckEx'en ikke blive kaldt, og kommandoen .bugcheck ( Display Bug Check Data ) vil ikke indeholde nogen nyttige oplysninger (hvis der er nogen oplysninger).

Fejlfindingen vil indeholde oplysninger svarende til parametrene ovenfor. Du kan stadig se de fire parametre ved at hente dem fra Watchdogs globale variabler ved at bruge en af ​​de to kommandoer afhængigt af operativsystemet.

  • 32-bit system: dd watchdog! G_WdBugCheckData L5
  • 64-bit system: dq watchdog! G_WdBugCheckData L5

Ved at bruge denne interaktive metode til fejlfinding af fejlen, kan du finde tråden, der forårsager fejlen, indstille breakpoints i tråden og senere bruge kommandoen g (Go) til at debugge looping-koden.