次の方法で共有


IPortDMus::Notify メソッド (dmusicks.h)

Notifyハードウェア割り込みが発生したときに、ミニポート ドライバーの割り込みサービス ルーチン (ISR) からメソッドを呼び出す必要があります。 この呼び出しは、ミニポート ドライバーが割り込みを処理している間、ポート ドライバーが遅延プロシージャ呼び出し (DPC) でミニポート ドライバーを呼び出すように要求します。

構文

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

パラメーター

[in, optional] ServiceGroup

IServiceGroup オブジェクトへのポインター。 このパラメーターは省略可能であり、 NULL として指定できます。 詳細については、「解説」を参照してください。

戻り値

なし

解説

メソッドは Notify 、ミニポート ドライバーのサービス グループに通知を送信します。

  • pServiceGroup パラメーターが NULL 以外の場合、Notifyこのパラメーターが指す IServiceGroup オブジェクトに対して RequestService メソッドが呼び出されます。
  • pServiceGroupNULL の場合:
    • メソッドは Notify 、ミニポート ドライバーの IServiceGroup オブジェクトの RequestService メソッドを 呼び出します。 これは、IMiniportDMus::Init 呼び出し中にミニポート ドライバーが出力する IServiceGroup オブジェクトです。 ミニポート ドライバーは、IPortDMus::RegisterServiceGroup を呼び出すことによって、このオブジェクトを早期 (つまり、Init からの戻り値より前) に登録している場合もあります。
    • メソッドは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 の場合、IRQL がDISPATCH_LEVELに戻ったため、ミニポート ドライバーが以前に保存した MIDI メッセージを MXF グラフに配置できることを示します。

この方法は、正確なタイミングに不可欠です。 ほとんどのミニポートは、割り込みソースをクリアした後、通知割り込みに応答してこのメソッドを呼び出します。 ミニポート ドライバーは、このメソッドを呼び出すタイミングを決定するために他のメソッドを自由に使用できますが、正確なタイミングは重要であり、維持する必要があります。

アダプター ドライバーは、ISR をインストールすると、ISR のエントリ ポイントと共に ServiceContext パラメーターを送信します (詳細については、「 ISR コンテキスト情報の提供」を参照してください)。 割り込みが発生すると、オペレーティング システムは ISR を呼び出し、呼び出しパラメーターとして ServiceContext を ISR に渡します。 ServiceContext パラメーターの意味はドライバー開発者にのみ知られていますが、通常はミニポート オブジェクトへのポインターです。 ISR は、このポインターを使用して、ミニポート オブジェクトに関する情報にアクセスします。

pServiceGroup パラメーターは、COM オブジェクトの参照カウント規則に従います。

要件

要件
対象プラットフォーム デスクトップ
Header dmusicks.h (Dmusicks.h を含む)
IRQL 任意のレベル

こちらもご覧ください

IMXF::P utMessage

IMiniportDMus::Init

IMiniportDMus::NewStream

IPortDMus

IPortDMus::RegisterServiceGroup

IServiceGroup