次の方法で共有


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 に渡される呼び出し元指定のコンテキストへの省略可能なポインター。 詳細については、以下の「解説」セクションを参照してください。

戻り値

なし

解説

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

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

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

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

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

  • CallBackNULL であるか、一致を承認します

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

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

AVStream は、このコールバックの Context パラメーターで KsFilterGenerateEvents ルーチンのパラメーター CallBackContext の内容を渡します。 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

KsGenerateEvents

KsPinGenerateEvents