KeAcquireSpinLockAtDpcLevel 宏 (wdm.h)

当调用方已在 IRQL >= DISPATCH_LEVEL 运行时,KeAcquireSpinLockAtDpcLevel 例程会获取旋转锁。

语法

void KeAcquireSpinLockAtDpcLevel(
  [in, out] PKSPIN_LOCK SpinLock
);

参数

[in, out] SpinLock

指向调用方必须为其提供存储的已初始化KSPIN_LOCK旋转锁的指针。 旋转锁必须来自非分页池。

返回值

备注

驱动程序调用 KeAcquireSpinLockAtDpcLevel (而不是 KeAcquireSpinLock )以提高驱动程序性能,前提是且仅当它们已在 DISPATCH_LEVEL 或更高版本的 IRQL 上运行。

如果驱动程序在 IRQL <= APC_LEVEL运行,则应调用 KeAcquireSpinLock ,使该例程引发 IRQL。 KeAcquireSpinLockAtDpcLevel 假定调用方已在 IRQL >= DISPATCH_LEVEL 运行,因此无需引发任何请求。

调用方应尽快释放带有 KeReleaseSpinLockFromDpcLevel 的 旋转锁。

有关旋转锁的详细信息,请参阅旋转锁

要求

要求
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 请参见“备注”部分。
DDI 符合性规则 HwStorPortProhibitedDDI (storport) IrqlDispatch (storport) SpinLockSafe (storport)

另请参阅

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeInitializeSpinLock

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeTryToAcquireSpinLockAtDpcLevel