KsPinGenerateEvents 関数 (ks.h)

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

構文

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

パラメーター

[in] Pin

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

[in, optional] EventSet

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

[in] EventId

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

[in] DataSize

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

[in, optional] Data

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

[in, optional] CallBack

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

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

KsPinGenerateEvents は、コールバックの Context パラメーターとして CallBackContext パラメーターを変更せずに渡します。 EventEntry を生成する必要がある場合、コールバック関数は TRUE を返します。 それ以外の場合は、 FALSE を返します。

[in, optional] CallBackContext

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

戻り値

なし

解説

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

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

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

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

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

  • *CallBack *は NULL であるか、一致を承認します。

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

要件

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

こちらもご覧ください

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsGenerateEvents