次の方法で共有


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

IPortEvents::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE