Compartilhar via


0x4000008A de Verificação de Bugs: THREAD_TERMINATE_HELD_MUTEX

O bug THREAD_TERMINATE_HELD_MUTEX marcar tem um valor de 0x4000008A. Isso indica que um driver adquiriu um mutex em um thread que saiu antes que o mutex pudesse ser liberado. Isso pode ser causado por um driver que retorna ao modo de usuário sem liberar um mutex ou por um driver adquirindo um mutex e, em seguida, causando uma exceção que resulta no thread em que ele está sendo executado, sendo encerrado.

Importante

Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul ao usar o computador, consulte Solucionar erros de tela azul.

Parâmetros de THREAD_TERMINATE_HELD_MUTEX

Parâmetro Descrição
1 O endereço do KTHREAD que possui o KMUTEX.
2 O endereço do KMUTEX que pertence a ele.
3 Reservado
4 Reservado

Causa

A extensão de depuração !analyze exibe informações sobre o bug marcar e pode ser útil para determinar a causa raiz.

Para investigar, examine a pilha de chamadas. Se houver um driver na pilha que é seguido diretamente por rotinas de tratamento de exceção do sistema e, em seguida, rotinas de encerramento de thread, esse driver está em falha e precisa ser corrigido para que ele não cause uma exceção sem tratamento ao manter um mutex de kernel. Se a pilha mostrar apenas o código de encerramento de thread normal e nenhum driver estiver implicado, execute !pool ou use ln (Listar símbolos mais próximos) no endereço do mutex (parâmetro 2) e veja se você pode descobrir quem é o proprietário. Esse bug certamente estará no código do proprietário desse mutex.