CritCheckIn function

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

Returns TRUE if the current thread is the owner of the specified critical section.

Syntax

BOOL WINAPI CritCheckIn(
   CCritSec *pcCrit
);

Parameters

pcCrit

Pointer to a CCritSec critical section.

Return value

In debug builds, returns TRUE if the current thread is the owner of this critical section, or FALSE otherwise. In retail builds, always returns TRUE.

Remarks

This function is especially useful within the ASSERT macro, to test whether a thread owns a given lock.

Examples

The following code example shows how to use this function:

{
    CCritSec MyLock;  // Critical section is not locked yet.
    
    ASSERT(CritCheckIn(&MyLock)); // This assert will fire.

    // Lock the critical section.    
    CAutoLock cObjectLock(&MyLock);
     
    ASSERT(CritCheckIn(&MyLock)); // This assert will not fire.

} // Lock goes out of scope here.

Requirements

Requirement Value
Header
Wxutil.h (include Streams.h)
Library
Strmbase.lib (retail builds);
Strmbasd.lib (debug builds)

See also

Critical Section Debugging Functions