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 儘快釋放微調鎖定。
如需微調鎖定的詳細資訊,請參閱 微調鎖定。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 請參閱一節。 |
DDI 合規性規則 | HwStorPortProhibitedDIS (storport) 、 IrqlDispatch (storport) 、 SpinLockSafe (storport) |