共用方式為


IInterruptSync 介面 (portcls.h)

IInterruptSync 介面代表中斷同步處理物件,該物件會同步處理中斷服務例程清單與非ISR例程的執行。 PortCls 系統驅動程式會實作此介面,並將其公開給配接器驅動程式。 迷你埠驅動程式會呼叫 PortCls 函式 PcNewInterruptSync來取得 IInterruptSync 對象的參考,這會建立連線到中斷資源的新 IInterruptSync 物件。 IInterruptSync 繼承自 IUnknown 介面。

IInterruptSync::RegisterServiceRoutine 方法會將 ISR 與同步對象產生關聯。 多個ISR可以與單一同步對象相關聯。 當中斷發生時,同步處理物件會根據 PcNewInterruptSync 函式的 Mode 參數,以指定的順序和方式執行清單中的 ISR。

IInterruptSync 的另一個 Facet 是能夠同步處理 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),這是在中斷發生時所要呼叫的。

要求

要求 價值
目標平臺 窗戶
標頭 portcls.h