共用方式為


KeAcquireSpinLockAtDpcLevel 巨集 (wdm.h)

KeAcquireSpinLockAtDpcLevel 例程在 IRQL >= DISPATCH_LEVEL 上執行時,會取得微調鎖定。

語法

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)

另請參閱

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeInitializeSpinLock

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel

KeTryToAcquireSpinLockAtDpcLevel