| Previous | Next |
| WINDOWS_NT_MP_STRING | BUGCODE_PSS_CRASH_INIT |
THREAD_TERMINATE_HELD_MUTEX
The THREAD_TERMINATE_HELD_MUTEX bug check has a value of 0x4000008A. This indicates that a driver acquired a mutex on a thread that exited before the mutex could be released. This can be caused by a driver returning to user mode without releasing a mutex or by a driver acquiring a mutex and then causing an exception that results in the thread it is running on, being terminated.
THREAD_TERMINATE_HELD_MUTEX Parameters
| Parameter | Description |
|---|---|
| 1 | The address of the KTHREAD that owns the KMUTEX. |
| 2 | The address of the KMUTEX that is owned. |
| 3 | Reserved |
| 4 | Reserved |
Cause
To investigate, look at the callstack. If there is a driver on the stack that is directly followed by system exception handling routines and then thread termination routines, this driver is at fault and needs to be fixed so that it does not cause an unhandled exception while holding a kernel mutex. If the stack just shows normal thread termination code and no driver is implicated, run !pool or use ln (List Nearest Symbols) on the address of the mutex (parameter 2) and see if you can discover who owns the mutex. This bug will almost certainly be in the code of the owner of that mutex.
References
Looking for a different code? Search another status or error code.