次の方法で共有


IPortEvents インターフェイス (portcls.h)

インターフェイスは IPortEventsハードウェア イベントをクライアントに通知するためにミニポート ドライバーによって使用されます。 Windows 98/Me および Windows 2000 以降では、portcls.sys のすべてのポート ドライバーがこのインターフェイスを実装し、ミニポート ドライバーに公開します。 ポート ドライバーがインターフェイスをサポートIPortEventsしているかどうかを判断するために、ミニポート ドライバーは REFIID IID_IPortEventsを使用して IPortXxx オブジェクトの QueryInterface メソッドを呼び出します。 IPortEventsIUnknown インターフェイスから継承されます。

ドライバーは通常、 インターフェイスを IPortEvents 使用して、ハードウェアによって生成されたボリュームまたはミュートの変更をシステムに通知しますが IPortEvents 、任意の種類のイベント通知に使用できます。 IPortEvents インターフェイスは、オプションのローエッジ ポート ドライバー インターフェイスです。 たとえば、ミキサーアプリケーションに制御または ミキサー ラインの変更を通知するために使用できます。 ミキサー API の詳細については、Microsoft Windows SDKのドキュメントを参照してください。

ミニポート ドライバーは、オートメーション テーブルを介してプロパティを公開するのと同じ方法でイベントを公開します ( 「PCAUTOMATION_TABLE」を参照)。 ミニポート ドライバーによって公開されるすべての次のオブジェクトは、プロパティやイベントを含むオートメーション テーブルを指定できます。

  • ミニポート ドライバーが実装するフィルター
  • フィルターが公開する各ピン
  • フィルターが公開する各ノード
自動化テーブル内の各イベント エントリは、次を指定 するPCEVENT_ITEM 型の構造体です。
  • イベント セット
  • セット内のイベント
  • サポート オプションを示すフラグ
  • イベントのハンドラーへの関数ポインター
アダプター ドライバーが起動し、そのポートとミニポート ドライバーのペアがシステムにフィルターとして登録されると、 WDMAud システム ドライバーは、 ミキサー API の呼び出しを WDM オーディオ ドライバーに KS コマンドに変換し、各ポート/ミニポート ドライバー のペアを開き、その機能を調べます。 このプロセス中、WDMAud は、ハードウェア イベントをサポートするコントロール ノードを検索して、ミニポート ドライバーのフィルター トポロジを走査します。 イベントは、イベント セット GUID KSEVENTSETID_AudioControlChange とイベント ID KSEVENT_CONTROL_CHANGEの組み合わせによって表されます。 WdmAud は、これらを検出すると、イベントを有効にし、イベントのクライアントとして自身を効果的に登録します。 その後、ミニポート ドライバーがイベントを通知するたびに、WDMAud に通知します。これにより、クライアントの適切なウィンドウ メッセージが生成されます。

オートメーション テーブルでイベントを公開するだけでなく、イベントを公開する必要があるミニポート ドライバーは、そのインターフェイスのポート ドライバーに対 IPortEvents してクエリを実行する必要があります。

このセクションでは、イベント要求を処理するための次のルーチンについても説明します。

EventHandler

継承

IPortEvents インターフェイスは、IUnknown インターフェイスから継承されます。

メソッド

IPortEvents インターフェイスには、これらのメソッドがあります。

 
IPortEvents::AddEventToEventList

AddEventToEventList メソッドは、ポート ドライバーのイベント リストにイベントを追加します。
IPortEvents::GenerateEventList

GenerateEventList メソッドは、特定のイベントが発生したことをポート ドライバーのイベント エントリの一覧を通じてクライアントに通知します。

要件

要件
対象プラットフォーム Windows
ヘッダー portcls.h