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,直到該例程完成執行為止。

RegisterServiceRoutineCallSynchronizedRoutine 方法都接受 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