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) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参阅“备注”部分。 |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport), IrqlDispatch(storport), SpinLockSafe(storport) |