ExAcquireSpinLockShared - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// wdm.h

KIRQL ExAcquireSpinLockShared(
  [in, out] PEX_SPIN_LOCK SpinLock
);
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-wdm-exacquirespinlockshared)

Description

The ExAcquireSpinLockShared routine acquires a spin lock for shared access by the caller, and raises the IRQL to DISPATCH_LEVEL.

Parameters

SpinLock [in, out]

A pointer to the spin lock to acquire for shared access. The caller must not already own this spin lock.

Return value

The ExAcquireSpinLockShared routine returns the previous IRQL value. For more information, see the Remarks section.

Remarks

On entry to this routine, the caller must be running at IRQL <= DISPATCH_LEVEL. This routine raises the IRQL to DISPATCH_LEVEL and returns the original (on-entry) IRQL value.

To release the spin lock, call the ExReleaseSpinLockShared routine. ExReleaseSpinLockShared restores the IRQL to the original value that it had on entry to ExAcquireSpinLockShared.

A spin lock is a 32-bit variable of type EX_SPIN_LOCK. The driver must allocate the storage for the spin lock and initialize the spin lock to zero. This storage must be located in nonpaged system-space memory.

The caller should hold the spin lock only briefly before releasing it. For more information, see Introduction to Spin Locks.

Recursive acquisition of a spin lock causes deadlock and is not allowed.

See also

ExReleaseSpinLockShared