ExReleaseFastMutex function (wdm.h)

The ExReleaseFastMutex routine releases ownership of a fast mutex that was acquired with ExAcquireFastMutex or ExTryToAcquireFastMutex.

Syntax

void ExReleaseFastMutex(
  PFAST_MUTEX FastMutex
);

Parameters

FastMutex

[in, out] A pointer to the fast mutex to be released.

Return value

None

Remarks

ExReleaseFastMutex releases ownership of the given fast mutex and sets the IRQL to the value that the caller was running at before it called ExAcquireFastMutex. If the previous IRQL was less than APC_LEVEL, the delivery of APCs to the current thread is reenabled.

It is a programming error to call ExReleaseFastMutex with a FastMutex that was acquired using ExAcquireFastMutexUnsafe. Drivers should release a fast mutex from the same thread that acquired it. Fast mutexes should be released in the opposite order from the order they were acquired.

For more information about fast mutexes, see Fast Mutexes and Guarded Mutexes.

Callers of ExReleaseFastMutex must be running at IRQL = APC_LEVEL. In most cases the IRQL will already be set to APC_LEVEL before ExReleaseFastMutex is called because ExAcquireFastMutex has already set the IRQL to APC_LEVEL automatically. However, if the caller changes the IRQL after ExAcquireFastMutex returns, the caller must explicitly set the IRQL to APC_LEVEL prior to calling ExReleaseFastMutex.

Requirements

Requirement Value
Minimum supported client Windows 2000
Header wdm.h
IRQL APC_LEVEL
DDI compliance rules HwStorPortProhibitedDDIs(storport)

See also

FAST_MUTEX

ExAcquireFastMutex

ExInitializeFastMutex

ExTryToAcquireFastMutex