次の方法で共有


KsFilterGenerateEvents 関数 (ks.h)

KsFilterGenerateEvents 関数は、Filterのイベント リストに存在する、指定された型のイベントを生成します。

構文

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

パラメーター

[in] Filter

イベントを生成する KSFILTER 構造体へのポインター。

[in, optional] EventSet

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

[in] EventId

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

[in] DataSize

データ のサイズ (バイト単位)。

[in] Data

データ バッファーへのポインター。 データ イベントを生成するかどうかを指定します。

[in, optional] CallBack

特定のイベントを生成する必要があるかどうかを判断するために呼び出される呼び出し元指定の関数へのポインター。 これが NULL 場合、イベントを生成する必要があるかどうかを判断するためのコールバック検証は実行されません (*EventSet *と EventId のみが使用されます)。 詳細については、以下の「解説」セクションを参照してください。

[in, optional] CallBackContext

CallBack コールバック関数に渡される、呼び出し元が指定したコンテキストへの省略可能なポインター。 詳細については、以下の「解説」セクションを参照してください。

戻り値

何一つ

備考

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

これは、必要な型キャストを実行 KsGenerateEvents へのインライン関数呼び出しです。 ミニドライバーは通常、KsGenerateEventsを直接呼び出す代わりに、このバージョンを呼び出す必要があります。

次の条件が満たされている場合、イベントが生成されます。

  • イベントは Filterのイベント リストに存在し、EventId イベントの ID と一致

  • EventSet は、イベントのセット GUID と一致するか、NULL

  • CallBack が NULL であるか、一致を承認

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

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Microsoft Windows XP 以降のオペレーティング システムと DirectX 8.0 以降の DirectX バージョンで使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー ks.h (Ks.h を含む)
ライブラリ Ks.lib
IRQL <=DISPATCH_LEVEL (「解説」セクションを参照)。

関連項目

KSEVENT_ENTRY

KsAddEvent する

KsGenerateEvents する

KsPinGenerateEvents する