O Windows para o erro THREAD_STUCK_IN_DEVICE_DRIVER

A mensagem de erro THREAD_STUCK_IN_DEVICE_DRIVER ocorre quando um driver de dispositivo está preso girando em um loop infinito, aguardando que o hardware associado fique ocioso.

Esse problema geralmente é o resultado de um problema de hardware ou um problema com o driver de dispositivo tentando programar o hardware. Este erro ocorre mais comumente com uma placa de vídeo ou driver de placa de vídeo com defeito.

Soluções de usuário final

Se você for um usuário final (sem desenvolver o driver) e encontrar esse erro, verifique se há drivers atualizados para o seu dispositivo. Se não houver drivers atualizados e nenhum novo hardware tiver sido adicionado, é seguro assumir que o hardware do computador falhou e deve ser substituído.

Soluções para desenvolvedores

Se você for o desenvolvedor do driver ou estiver tentando depurar esse problema, use o comando .thread ( Set Register Context ). Em seguida, para localizar o encadeamento do encadeamento, use o comando kb ( Display Stack Backtrace ).

Pode ser possível usar informações no depurador para resolver esse problema também. O DbgBreakPoint será chamado quando o erro ocorre se o depurador do kernel já estava sendo executado quando o Windows detectou a condição de erro ou tempo limite. Nesse caso, o KeBugCheckEx não será chamado e o uso do comando .bugcheck ( Exibir dados de verificação de erros ) não conterá nenhuma informação útil (se houver alguma informação).

O depurador incluirá informações semelhantes aos parâmetros acima. Você ainda pode visualizar os quatro parâmetros recuperando-os das variáveis ​​globais do Watchdog usando um dos dois comandos, dependendo do sistema operacional.

  • Sistema de 32 bits: dd watchdog! G_WdBugCheckData L5
  • Sistema de 64 bits: dq watchdog! G_WdBugCheckData L5

Usando este método interativo para depurar o erro, você pode encontrar o encadeamento que causa o erro, definir pontos de interrupção no encadeamento e depois usar o comando g (Ir) para depurar o código de loop.