ExAcquireSpinLockSharedAtDpcLevel routine

The ExAcquireSpinLockSharedAtDpcLevel routine acquires a spin lock for shared access by a caller that is already running at IRQL >= DISPATCH_LEVEL.

Syntax

VOID ExAcquireSpinLockSharedAtDpcLevel(
  _Inout_ PEX_SPIN_LOCK  SpinLock
);

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

None.

Remarks

On entry to this routine, the caller must be running at IRQL >= DISPATCH_LEVEL. This routine does not change the IRQL.

To release the spin lock, the driver calls the ExReleaseSpinLockSharedFromDpcLevel routine.

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.

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

Requirements

Target platform

Universal

Version

Available starting with Windows Vista with SP1.

Header

Wdm.h

Library

Ntoskrnl.lib

IRQL

>= DISPATCH_LEVEL (See Remarks.)

See also

ExReleaseSpinLockSharedFromDpcLevel

Send comments about this topic to Microsoft