IInterruptSync 介面 (portcls.h)
IInterruptSync
介面代表中斷同步處理物件,該物件會同步處理與非ISR例程 (ISR) 中斷服務例程清單的執行。 PortCls 系統驅動程式會實作此介面,並將其公開給配接器驅動程式。 迷你埠驅動程式會藉由呼叫 PortCls 函式 PcNewInterruptSync 來取得對象的參考IInterruptSync
,這會建立連接到中斷資源的新IInterruptSync
物件。 IInterruptSync
繼承自 IUnknown 介面。
IInterruptSync::RegisterServiceRoutine 方法會將 ISR 與同步對象產生關聯。 多個ISR可以與單一同步對象相關聯。 發生中斷時,同步物件會根據 PcNewInterruptSync 函式的 Mode 參數,依指定的順序和方式執行清單中的ISR。
的另一個 Facet IInterruptSync
是能夠將 ISR 的執行與其他不是 ISR 的例程同步處理。 一旦將非ISR例程傳遞至 IInterruptSync::CallSynchronizedRoutine 並開始執行,就保證會保留任何向同步物件註冊的ISR,直到該例程完成執行為止。
RegisterServiceRoutine 和 CallSynchronizedRoutine 方法都接受 PINTERRUPTSYNCROUTINE 類型的函式指標,其定義如下:
typedef NTSTATUS (*PINTERRUPTSYNCROUTINE)
(
IN struct IInterruptSync *InterruptSync,
IN PVOID DynamicContext
);
InterruptSync 成員是同步物件的指標。 DynamicContext 成員包含呼叫時傳遞至例程的內容值。
如需詳細資訊,請參閱 中斷同步物件。
繼承
IInterruptSync 介面繼承自 IUnknown 介面。
方法
IInterruptSync 介面具有這些方法。
IInterruptSync::CallSynchronizedRoutine CallSynchronizedRoutine 方法會呼叫不是中斷服務例程的例程, (ISR) ,但其執行必須與 ISR 同步。 |
IInterruptSync::Connect Connect 方法會將同步處理物件連接到中斷。 |
IInterruptSync::D isconnect Disconnect 方法會中斷同步處理對象的連接。 |
IInterruptSync::GetKInterrupt GetKInterrupt 方法會從埠類別同步處理物件取得 WDM 中斷物件。 |
IInterruptSync::RegisterServiceRoutine RegisterServiceRoutine 方法會 (ISR) 註冊中斷服務例程,在發生中斷時呼叫。 |
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | portcls.h |