Windows stoppar THREAD_STUCK_IN_DEVICE_DRIVER-felet

Felmeddelandet THREAD_STUCK_IN_DEVICE_DRIVER uppstår när en drivrutin sitter fast i en oändlig slinga och väntar på att den tillhörande hårdvaran blir ledig.

Problemet är ofta resultatet av ett hårdvaruproblem eller ett problem med enhetsdrivrutinen som försöker programmera hårdvaran. Detta fel uppstår oftare med ett defekat grafikkort eller ett grafikkortsdrivrutin.

Slutanvändarlösningar

Om du är en slutanvändare (inte utvecklaren drivrutinen) och stöter på det här felet, kolla efter uppdaterade drivrutiner för din enhet. Om det inte finns några uppdaterade drivrutiner och ingen ny maskinvara har lagts till är det säkert att anta att hårdvaran i datorn har misslyckats och bör bytas ut.

Utvecklarlösningar

Om du är utvecklaren av drivrutinen eller försöker felsöka problemet, använd kommandot .thread ( Set Register Context ). Sedan, för att hitta var tråden är fast, använd kommandot kb ( Display Stack Backtrace ).

Det kan vara möjligt att använda information i debuggeren för att lösa detta problem också. DbgBreakPoint kommer att ringas när felet inträffar om kärnan debugger redan kördes när Windows upptäckte felet eller tidsavbrottstillståndet. I det här fallet kommer KeBugCheckEx inte att ringas och kommandot .bugcheck ( Display Bug Check Data ) kommer inte innehålla någon användbar information (om någon information alls).

Felsökaren kommer att innehålla information som liknar parametrarna ovan. Du kan fortfarande se de fyra parametrarna genom att hämta dem från Watchdogs globala variabler genom att använda en av de två kommandona, beroende på operativsystemet.

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

Genom att använda denna interaktiva metod för att felsöka felet kan du hitta tråden som orsakar felet, ställa in brytpunkter i tråden och använda kommandot g (Go) för att felsöka looping-koden.