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執行的中斷服務例程,而且不會使用微調鎖定進行中斷同步處理。 如果 Interrupt 指向連接到被動層級 ISR 的中斷物件, KeAcquireInterruptSpinLock 會導致錯誤檢查。 如需詳細資訊,請參閱 使用 Passive-Level 插斷服務例程。
呼叫端必須在 IRQL <= DIRQL 上執行,才能 中斷。 (這是建立中斷時傳遞為 IoConnectInterruptSynchronizeIrql 參數的驅動程式值。)
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
標頭 | wdm.h |
IRQL | <= DIRQL |
DDI 合規性規則 | HwStorPortProhibitedDIS (storport) |