Menu

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.