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) |