次の方法で共有


KsPinGetTrailingEdgeStreamPointer 関数 (ks.h)

KsPinGetTrailingEdgeStreamPointer 関数は、指定されたピンに関連付けられているキューの末尾のエッジ ストリーム ポインターを取得します。

構文

KSDDKAPI PKSSTREAM_POINTER KsPinGetTrailingEdgeStreamPointer(
  [in] PKSPIN                 Pin,
  [in] KSSTREAM_POINTER_STATE State
);

パラメーター

[in] Pin

末尾のエッジ ストリーム ポインターを返すキューを持つ KSPIN 構造体へのポインター。

[in] State

このパラメーターは、末尾のエッジ ストリーム ポインターを取得する状態を指定します。 以下のいずれかを指定できます。

KSSTREAM_POINTER_STATE_UNLOCKED

データ フレームを参照するかどうかに関係なく、リーディング エッジ ストリーム ポインターを取得します。

ポインターがロックされるまで、ポインターに関連付けられているデータへのアクセスは試行できません。 また、ロック解除されたストリーム ポインターに関連付けられているフレームを取り消すこともできます。

KSSTREAM_POINTER_STATE_LOCKED

リーディング エッジ ストリーム ポインターを取得してロックします。 ストリーム ポインターに関連付けられているデータ フレームがない場合は、 NULL を返しますnull 以外のポインターが返された場合は、ロックされたストリーム ポインターであり、データ フレームが関連付けられます。 ロックされたストリーム ポインターに関連付けられているフレームを取り消 すことはできません

戻り値

KsPinGetTrailingEdgeStreamPointer は 、末尾のエッジ ストリーム ポインターを表す KSSTREAM_POINTER 構造体へのポインターまたは NULL を返します。 NULL の戻り値は、ピンに関連付けられているキューの末尾の端がないことを示すことができます。 この場合、ピン記述子では、ピンが個別の末尾エッジを持つ必要があることを指定していない可能性があります。 または、 NULL は 、ピンに関連付けられているキューがないことを示すことができます。 この場合、問題のピンは標準のトランスポート メカニズムを使用しません。 NULL の戻り値は、末尾のエッジをロックしようとして失敗したことを示すこともできます。 つまり、現在、リーディング エッジに関連付けられているデータ フレームはありません。

注釈

末尾のエッジ ストリーム ポインターは、ピンのピン記述子が個別の末尾エッジを指定している場合にのみ存在するデータ ストリームへの特別なポインターです。 このポインターが存在する場合は、KsStreamPointerAdvance Xxx または KsStreamPointerUnlock 呼び出しによって特に高度でない限り、キュー内の最も古いデータ指します。 また、末尾のエッジが指すフレームより古いフレームに対して複製されたストリーム ポインターが存在する場合も、古いデータがキューに存在する可能性があります。

先頭エッジ ストリーム ポインターと末尾エッジ ストリーム ポインターの間のウィンドウに存在するデータ フレームは、少なくとも 1 つの参照カウントを持つため、末尾のエッジの進歩の結果としてウィンドウを終了するまで、キューから離れて完了しません。 先行エッジと末尾エッジの間のフレームは既定ではロック されないため 、取り消すことができます。

KsPinGetTrailingEdgeStreamPointer は、ほとんどの場合、ピン中心のフィルターで使用されます。 詳細については、「 ピン中心の処理 」と「 フィルター中心の処理」を参照してください。

KsPinGetTrailingEdgeStreamPointer は、キューが KSPIN_FLAG_DISTINCT_TRAILING_EDGE フラグを設定して個別の末尾エッジを持つ必要があることをピンのピン記述子で指定しない限り、機能しません。

要件

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

こちらもご覧ください

KsPinGetLeadingEdgeStreamPointer

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerClone

KsStreamPointerDelete

KsStreamPointerLock

KsStreamPointerUnlock