共用方式為


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)

另請參閱

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeInitializeSpinLock

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeTryToAcquireSpinLockAtDpcLevel