Controllo bug 0x4000008A: THREAD_TERMINATE_HELD_MUTEX

Il controllo THREAD_TERMINATE_HELD_MUTEX bug ha un valore di 0x4000008A. Ciò indica che un driver ha acquisito un mutex su un thread che ha chiuso prima che il mutex possa essere rilasciato. Ciò può essere causato da un driver che torna alla modalità utente senza rilasciare un mutex o da un driver che acquisisce un mutex e quindi causa un'eccezione che genera il thread in esecuzione, terminata.

Importante

Questo articolo è destinato ai programmatori. Se si è un cliente che ha ricevuto un codice di errore dello schermo blu durante l'uso del computer, vedere Risolvere gli errori dello schermo blu.

parametri THREAD_TERMINATE_HELD_MUTEX

Parametro Descrizione
1 Indirizzo del KTHREAD proprietario di KMUTEX.
2 Indirizzo dell'oggetto KMUTEX di proprietà.
3 Riservato
4 Riservato

Causa

L'estensione di debug !analizza visualizza informazioni sul controllo dei bug e può essere utile per determinare la causa radice.

Per analizzare, esaminare il callstack. Se è presente un driver nello stack che è direttamente seguito dalle routine di gestione delle eccezioni di sistema e quindi le routine di terminazione del thread, questo driver è in errore e deve essere risolto in modo che non causa un'eccezione non gestita mentre mantiene un mutex del kernel. Se lo stack mostra solo il normale codice di terminazione del thread e nessun driver è implicato, eseguire !pool o usare ln (List Nearest Symbols) sull'indirizzo del mutex (parametro 2) e vedere se è possibile individuare chi lo possiede. Questo bug sarà quasi certamente nel codice del proprietario di tale mutex.