次の方法で共有


KsGenerateEvents 関数 (ks.h)

KsGenerateEvents 関数は、オブジェクトのイベント リストに存在する指定された型のイベントを生成します。

構文

void KsGenerateEvents(
  [in]           PVOID                      Object,
  [in, optional] const GUID                 *EventSet,
  [in]           ULONG                      EventId,
  [in]           ULONG                      DataSize,
  [in, optional] PVOID                      Data,
  [in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
  [in, optional] PVOID                      CallBackContext
);

パラメーター

[in] Object

イベントを生成するオブジェクト。 AVStream フィルターまたは pin オブジェクトを指定できます。

[in, optional] EventSet

生成するイベントを決定するために一致するイベント セット GUID。 このパラメーターが NULL の場合、一致するイベントを決定するために SET GUID は考慮されません。

[in] EventId

生成するイベントを決定するために一致するイベント ID。

[in] DataSize

データ イベントを生成するデータのサイズ (バイト単位)。

[in, optional] Data

イベント通知に含めるデータ バッファーへのポインター。 ドライバーが通知を介して追加情報を伝える必要がない場合は、この省略可能なパラメーターを NULL に設定 します

[in, optional] CallBack

特定のイベントを生成する必要があるかどうかを判断するために呼び出される呼び出し元指定の関数へのポインター。 これが NULL の場合、イベントを生成する必要があるかどうかを判断するためのコールバック検証は実行されません (*EventSet *および EventId のみが使用されます)。

[in, optional] CallBackContext

コールバック関数 CallBack に渡される呼び出し元指定のコンテキストへのポインター。

戻り値

なし

解説

この関数を呼び出す場合、ミニドライバーは、 データCallBackContext を、ロックされたページ不可能なデータ セグメントに配置する必要があります。 また、 CallBack は DISPATCH_LEVEL で行われます。 コールバック関数はロックされたセグメント内にあり、IRQL = DISPATCH_LEVELで実行できるように準備する必要があります。 DX8 にのみ追加の問題があることに注意してください。 EventSet はロックされたデータ セグメントに存在する必要があります。

ミニドライバーは通常、この関数を直接呼び出さず、代わりに適切なキャストを実行するバージョンの 1 つ KsFilterGenerateEvents または KsPinGenerateEvents を使用します。

イベントが *Object の *event list に存在し、*EventId *がイベントの ID と一致し、 EventSet がイベントの設定 GUID と一致するか NULL、*CallBack *が NULL であるか、一致を承認した場合に生成されます。

CallBack は、追加の一致決定に使用される呼び出し元指定のコールバックです。 次のようにプロトタイプが作成されます。

BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);

AVStream は、 KsGenerateEvents ルーチンのパラメーター CallBackContext の内容を、このコールバックの Context パラメーターに渡します。 EventEntry は、生成されるイベントを指定する KSEVENT_ENTRY 構造体へのポインターです。 このイベントを生成する必要がある場合、コールバック関数は TRUE を 返す必要があります。

詳細については、「AVStream イベントと KS イベントでのイベント処理」を参照してください。

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のオペレーティング システムと DirectX 8.0 以降の DirectX バージョンで使用できます。
対象プラットフォーム ユニバーサル
Header ks.h (Ks.h を含む)
Library Ks.lib
IRQL <=DISPATCH_LEVEL

こちらもご覧ください

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents