共用方式為


KeAcquireInterruptSpinLock 函式 (wdm.h)

KeAcquireInterruptSpinLock 例程會取得與中斷對象相關聯的微調鎖定。

語法

KIRQL KeAcquireInterruptSpinLock(
  PKINTERRUPT Interrupt
);

參數

Interrupt

[in, out]指定中斷物件的指標。 此值必須由 ioConnectInterruptIoConnectInterruptEx提供。

傳回值

KeAcquireInterruptSpinLock 傳回呼叫例程時目前的 IRQL。 此值會在釋放微調鎖定時傳遞至 KeReleaseInterruptSpinLock

言論

驅動程式會使用中斷微調鎖定來同步存取與中斷ISR共用的記憶體。 驅動程式可以呼叫 KeReleaseInterruptSpinLock來釋放微調鎖定。

在中斷微調鎖定保留時執行的任何程序代碼會在 IRQL = DIRQL 上執行指定的 中斷,因此必須非常快速地執行。 如需詳細資訊,請參閱使用重要區段

將驅動程式例程同步處理至ISR的慣用方式,是使用 KeSynchronizeExecution 例程。

從 Windows 8 開始,驅動程式可以使用 IoConnectInterruptEx 來註冊在 IRQL = PASSIVE_LEVEL 執行的中斷服務例程,而且不會使用微調鎖定進行中斷同步處理。 如果中斷 指向連接到被動層級 ISR 的中斷物件,KeAcquireInterruptSpinLock 會導致錯誤檢查。 如需詳細資訊,請參閱使用 Passive-Level 中斷服務例程

呼叫端必須在 IRQL <= DIRQL 上執行,插斷。 (這是建立 中斷 時,IoConnectInterruptSynchronizeIrql 參數傳遞的驅動程式值。

要求

要求 價值
最低支援的用戶端 Windows XP
標頭 wdm.h
IRQL <= DIRQL
DDI 合規性規則 HwStorPortProhibitedDIs(storport)

另請參閱

IoConnectInterrupt

KeReleaseInterruptSpinLock

KeSynchronizeExecution