KeAcquireInStackQueuedSpinLockAtDpcLevel routine

The KeAcquireInStackQueuedSpinLockAtDpcLevel routine acquires a queued spin lock when the caller is already running at IRQL >= DISPATCH_LEVEL.

Syntax

VOID KeAcquireInStackQueuedSpinLockAtDpcLevel(
  _Inout_ PKSPIN_LOCK         SpinLock,
  _Out_   PKLOCK_QUEUE_HANDLE LockHandle
);

Parameters

Return value

None

Remarks

For a driver running at IRQL >= DISPATCH_LEVEL, KeAcquireInStackQueuedSpinLockAtDpcLevel acquires a spin lock as a queued spin lock. For more information, see Queued Spin Locks. To release the spin lock, call the KeReleaseInStackQueuedSpinLockFromDpcLevel routine.

Drivers that are already running at an IRQL >= DISPATCH_LEVEL can call this routine to acquire the queued spin lock more quickly. Otherwise, use the KeAcquireInStackQueuedSpinLock routine to acquire the spin lock.

For a driver that is running at IRQL > DISPATCH_LEVEL, this routine acquires the lock without modifying the current IRQL. For a driver that is running at IRQL = DISPATCH_LEVEL, this routine improves performance by acquiring the lock without first setting the IRQL to DISPATCH_LEVEL, which, in this case, would be a redundant operation.

Like ordinary spin locks, queued spin locks must only be used in very special circumstances. For a description of when to use spin locks, see KeAcquireSpinLock.

Drivers must not combine calls to KeAcquireSpinLock and KeAcquireInStackQueuedSpinLock on the same spin lock. A spin lock must always be acquired or released either as a queued spin lock, or as an ordinary spin lock.

Requirements

Target platform

Universal

Version

Available in Windows XP and later versions of Windows.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

NtosKrnl.lib

DLL

NtosKrnl.exe

IRQL

>= DISPATCH_LEVEL (see Remarks section)

DDI compliance rules

HwStorPortProhibitedDDIs

See also

KLOCK_QUEUE_HANDLE

KeAcquireSpinLock

KeAcquireInStackQueuedSpinLock

KeInitializeSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

Send comments about this topic to Microsoft