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
IUnknown MajorTarget ミニポート オブジェクトに関連付けられているストリーム オブジェクトへのポインターです。 このメンバーには、ポート ドライバーが以前に 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 インターフェイスへの参照を取得できます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | portcls.h (Portcls.h を含む) |
関連項目
EventHandler の