Windows stop THREAD_STUCK_IN_DEVICE_DRIVER error

Updated: 01/05/2018 by Computer Hope
windows stop thread stuck in device driver error

The THREAD_STUCK_IN_DEVICE_DRIVER error message occurs when a device driver is stuck spinning in an infinite loop, waiting for the associated hardware to become idle.

This issue often is the result of a hardware problem or a problem with the device driver trying to program the hardware. This error occurs more often with a defective video card or video card driver.

End-user solutions

If you are an end-user (not developing the driver) and encountering this error, check for any updated drivers for your device. If there are no updated drivers and no new hardware was added, it's safe to assume that hardware in the computer has failed and should be replaced.

Developer solutions

If you are the developer of the driver, or trying to debug this problem, use the .thread (Set Register Context) command. Then, to find where the thread is stuck, use the kb (Display Stack Backtrace) command.

It may be possible to use information in the debugger to resolve this problem as well. The DbgBreakPoint is called when the error occurs if the kernel debugger was already running when Windows detected the error or time-out condition. In this case, the KeBugCheckEx is not called and using the .bugcheck (Display Bug Check Data) command doesn't contain any useful information (if any information at all).

The debugger includes information similar to the parameters above. You can still view the four parameters by retrieving them from the Watchdog's global variables using one of the two commands, depending on the operating system.

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

Using this interactive method to debug the error, you can find the thread causing the error, set breakpoints in the thread and later use the g (Go) command to debug the looping code.