Ошибка остановки Windows THREAD_STUCK_IN_DEVICE_DRIVER

Сообщение об ошибке THREAD_STUCK_IN_DEVICE_DRIVER возникает, когда драйвер устройства застревает, вращаясь в бесконечном цикле, ожидая, пока соответствующее оборудование перестанет работать.

Эта проблема часто является результатом аппаратного сбоя или проблемы с драйвером устройства, пытающегося запрограммировать аппаратное обеспечение. Эта ошибка чаще возникает с неисправной видеокартой или драйвером видеокарты.

Решения для конечных пользователей

Если вы являетесь конечным пользователем (не разрабатываете драйвер) и столкнулись с этой ошибкой, проверьте наличие обновленных драйверов для вашего устройства. Если обновленных драйверов нет и новое оборудование не было добавлено, можно с уверенностью предположить, что аппаратное обеспечение компьютера вышло из строя и должно быть заменено.

Решения для разработчиков

Если вы разработчик драйвера или пытаетесь отладить эту проблему, используйте команду .thread (Set Register Context). Затем, чтобы узнать, где застрял поток, используйте команду kb (Display Stack Backtrace).

Для решения этой проблемы также возможно использовать информацию в отладчике. DbgBreakPoint будет вызываться при возникновении ошибки, если отладчик ядра уже работал, когда Windows обнаружила ошибку или условие истечения времени ожидания. В этом случае KeBugCheckEx не будет вызываться, и использование команды .bugcheck (Показать данные проверки ошибок) не будет содержать никакой полезной информации (если вообще будет какая-либо информация).

Отладчик будет содержать информацию, аналогичную параметрам, указанным выше. Вы по-прежнему можете просматривать четыре параметра, извлекая их из глобальных переменных Watchdog, используя одну из двух команд, в зависимости от операционной системы.

  • 32-битная система: dd watchdog! G_WdBugCheckData L5
  • 64-битная система: dq watchdog! G_WdBugCheckData L5

Используя этот интерактивный метод для отладки ошибки, вы можете найти поток, вызывающий ошибку, установить точки останова в потоке и позже использовать команду g (Go) для отладки зацикливания кода.

Ссылка на основную публикацию