PCEVENT_REQUEST 構造体 (portcls.h)
PCEVENT_REQUEST構造体は、イベント要求を指定します。
構文
typedef struct _PCEVENT_REQUEST {
PUNKNOWN MajorTarget;
PUNKNOWN MinorTarget;
ULONG Node;
const PCEVENT_ITEM *EventItem;
PKSEVENT_ENTRY EventEntry;
ULONG Verb;
PIRP Irp;
} PCEVENT_REQUEST, *PPCEVENT_REQUEST;
メンバー
MajorTarget
メインミニポート オブジェクトへの IUnknown ポインター。 このメンバーには、アダプター ドライバーが以前に IPort::Init メソッドに渡した UnknownMiniport ポインターが含まれています。
MinorTarget
MajorTarget ミニポート オブジェクトに関連付けられているストリーム オブジェクトへの IUnknown ポインター。 このメンバーには、ポート ドライバーが以前に IMiniportXxx::NewStream メソッド (たとえば、IMiniportWaveCyclic::NewStream メソッドの Stream パラメーター) から取得したストリーム オブジェクト ポインターが含まれています。
Node
ノード ID を指定します。 このメンバーは、要求のターゲット ノードを識別します。 ターゲットがノードでない場合、このメンバーは ULONG(-1) に設定されます。
EventItem
この要求の PCEVENT_ITEM 構造体へのポインター
EventEntry
この要求の KSEVENT_ENTRY 構造体へのポインター
Verb
イベント要求の種類を指定します。 このメンバーは、次の表のいずれかの値に設定する必要があります。
値 | 意味 |
---|---|
PCEVENT_VERB_ADD | クライアントが指定したイベントを有効にすることを示します。 イベントとターゲットの情報を検証した後、 EventHandler ルーチンは IPortEvents::AddEventToEventList メソッドを呼び出してイベントを追加します。 |
PCEVENT_VERB_REMOVE | イベントが無効になっており、リストから削除されていることを EventHandler に通知します。 |
PCEVENT_VERB_SUPPORT | この要求は、サポートのためのクエリです。 ミニポート ドライバーは、要求で識別されたターゲットのイベントをサポートする場合は、このクエリに成功する必要があります。 それ以外の場合は、クエリが失敗します。 |
PCEVENT_VERB_NONE | 対処は必要ありません。 |
Irp
イベント要求を含む IRP へのポインター
注釈
これは、ポート ドライバーがミニポート ドライバーの EventHandler ルーチンに渡す構造です。 PCEVENT_ITEM構造体には、PCEVENT_REQUEST ポインターを唯一の呼び出しパラメーターとして受け取るイベント ハンドラーへの関数ポインターが含まれています。 ポート ドライバーは 、PCEVENT_REQUEST 構造体を割り当て、元のイベント要求 ( Irp メンバーが指す) から関連情報を抽出し、ハンドラーを呼び出す前に、この構造体に情報を読み込みます。
WDM オーディオでは、イベント要求のターゲットをピン インスタンスにすることはできますが、フィルター インスタンスにすることはできません。 ターゲットには、ノード ID を含めることもできます。
MajorTarget メンバーと MinorTarget メンバーは、それぞれ、メイン ミニポート オブジェクトと関連付けられたストリーム オブジェクトへの IUnknown ポインターです。 イベント ハンドラーは、これらのオブジェクトのミニポート インターフェイスとストリーム インターフェイスに対してクエリを実行できます。
たとえば、イベント要求のターゲットが WaveCyclic フィルターのピン インスタンスである場合は、次のようになります。
- ハンドラーは、MajorTarget オブジェクトの IUnknown インターフェイスで QueryInterface を呼び出して、オブジェクトの IMiniportWaveCyclic インターフェイスへの参照を取得できます。
- ハンドラーは、MinorTarget オブジェクトの IUnknown インターフェイスで QueryInterface を呼び出して、オブジェクトの IMiniportWaveCyclicStream インターフェイスへの参照を取得できます。
要件
要件 | 値 |
---|---|
Header | portcls.h (Portcls.h を含む) |