共用方式為


IPortDMus::Notify 方法 (dmusicks.h)

發生硬體中斷時,應該從迷你埠驅動程式的中斷服務例程 (ISR) 呼叫 Notify 方法。 此呼叫會要求埠驅動程式使用延後過程調用 (DPC) 來呼叫迷你埠驅動程式,而迷你埠驅動程式會處理中斷。

語法

void Notify(
  [in, optional] PSERVICEGROUP ServiceGroup
);

參數

[in, optional] ServiceGroup

IServiceGroup 物件的指標。 這個參數是選擇性的,而且可以指定為 NULL 。 如需詳細資訊,請參閱下列一節。

傳回值

沒有

言論

Notify 方法會將通知傳送至迷你埠驅動程式的服務群組:

  • 如果 pServiceGroup 參數NULLNotify 方法會在此參數指向的 IServiceGroup 物件上呼叫 RequestService 方法。
  • 如果 pServiceGroup NULL
    • Notify 方法會呼叫 miniport 驅動程式 IServiceGroup 物件上的 RequestService 方法。 這是 IMiniportDMus::Init 呼叫期間迷你埠驅動程序輸出的 IServiceGroup 物件。 迷你埠驅動程式可能也早點註冊此物件(也就是早於從 Init傳回 ),方法是呼叫 IPortDMus::RegisterServiceGroup
    • Notify 方法也會在屬於每個迷你埠驅動程序數據流的 IServiceGroup 物件上呼叫 RequestService 方法。 這是 IMiniportDMus::NewStream 方法輸出的 IServiceGroup 物件。
迷你埠驅動程式通常會呼叫 Notify,以通知埠驅動程式音訊裝置已產生硬體中斷。 例如,當中斷訊號顯示某些緩存器需要讀取時,迷你埠驅動程式的ISR無法在提升許可權的IRQL存取MXF (MIDI轉換篩選器) 圖形。 相反地,迷你埠驅動程式可以從緩存器儲存輸入數據(例如MIDI數據的位元組),呼叫 Notify,並等候埠驅動程式使用 DPC 返回。

當迷你埠驅動程式的ISR呼叫 Notify時,埠驅動程式會在提升許可權的硬體中斷 IRQL 收到通知,並將 DPC 放在佇列中。 當 IRQL 卸除至DISPATCH_LEVEL時,埠驅動程式的 DPC 會引發並服務迷你埠驅動程式。

在 DPC 內,埠驅動程式會呼叫迷你埠驅動程式輸入數據流上的 IMXF::P utMessage,並使用 NULL 參數來表示迷你埠驅動程式現在可以將先前儲存的 MIDI 訊息放入 MXF 圖形中,因為 IRQL 已捨棄回DISPATCH_LEVEL。

這個方法對於精確的計時至關重要。 大部分的迷你埠會在清除中斷來源之後,呼叫此方法以回應通知中斷。 雖然迷你埠驅動程式可以自由使用其他方法來判斷何時呼叫此方法,但精確計時很重要,而且應該維護。

當配接器驅動程式安裝 ISR 時,它會提交 ServiceContext 參數以及 ISR 的進入點(如需詳細資訊,請參閱 提供 ISR 內容資訊)。 當中斷發生時,作系統會呼叫ISR,並將 ServiceContext 當做ISR的呼叫參數傳遞。 雖然只有驅動程式開發人員才知道 ServiceContext 參數的意義,但它通常是迷你埠物件的指標。 ISR 會使用此指標來存取迷你埠物件的相關信息。

pServiceGroup 參數會遵循 COM 物件的 參考計數慣例,

要求

要求 價值
目標平臺 桌面
標頭 dmusicks.h (包括 Dmusicks.h)
IRQL 任何層級

另請參閱

IMXF::P utMessage

IMiniportdMus::Init

IMiniportDMus::NewStream

IPortDMus

IPortDMus::RegisterServiceGroup

IServiceGroup