KeAcquireInterruptSpinLock 函式 (wdm.h)
KeAcquireInterruptSpinLock 例程會取得與中斷對象相關聯的微調鎖定。
語法
KIRQL KeAcquireInterruptSpinLock(
PKINTERRUPT Interrupt
);
參數
Interrupt
[in, out]指定中斷物件的指標。 此值必須由 ioConnectInterrupt 或 IoConnectInterruptEx提供。
傳回值
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) |