Thread that is exiting owns a critical section |
Application Verifier break message
Thread that is exiting owns a critical section.
Probable cause
This stop is generated if a thread is terminated, suspended or is in a state (worker thread finished a work item) in which it cannot hold a critical section. The current thread is the culprit.
If the current thread is the owner of the critical section, it is probably calling ExitThread. The current thread should have released the critical section before exiting. If the current thread is calling TerminateThread() or SuspendThread() then it should not do this while holding a critical section.
Information displayed by Application Verifier
Parameter1 - Thread ID of the thread that is exiting while owning a critical section
Parameter2 - Critical section address. Run !cs �s address to get more information.
Parameter3 - Critical section debug information address
Parameter4 - Critical section initialization stack trace. Run dps address to dump the stack trace.
Description - Thread cannot own a critical section
Additional information
Verifier stop code 0200.
Check the contents of the current call stack when the thread exited.
Frequency of this error is low.
To debug this stop use the following debugger commands:
kb � to get the current stack trace. If the current thread is the owner of the critical section it is probably calling ExitThread. The current thread should have released the critical section before exiting. If the current thread is calling TerminateThread or SuspendThread then it should not do this for a thread holding a critical section.
!cs �s parameter2 - dump information about this critical section.
ln parameter2 � to show symbols near the address of the critical section. This should help identify the leaked critical section.
dds parameter4 � to dump the stack trace for this critical section initialization.