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 は、末尾のエッジをロックしようとして失敗したことを示すこともできます。 つまり、現在、先頭のエッジに関連付けられているデータ フレームはありません。
備考
末尾のエッジ ストリーム ポインターは、ピンのピン記述子が個別の末尾のエッジを指定する場合にのみ存在するデータ ストリームへの特別なポインターです。 このポインターが存在する場合は、KsStreamPointerAdvanceXxx または KsStreamPointerUnlock 呼び出しによって特に高度でない限り、キュー内の最も古いデータを指します。 また、末尾の端が指すフレームよりも古いフレームに対して複製されたストリーム ポインターが存在する場合にも、古いデータがキューに存在する可能性があります。
先頭のエッジ ストリーム ポインターと末尾のエッジ ストリーム ポインターの間のウィンドウ内に存在するデータ フレームには少なくとも 1 つの参照カウントがあるため、キューから出ず、末尾のエッジの進歩の結果としてウィンドウが終了するまで完了しません。 先頭のエッジと末尾のエッジの間のフレームは既定ではロック ないため、取り消すことができます。
KsPinGetTrailingEdgeStreamPointer は、ほとんどの場合、ピン中心のフィルターで使用されます。 詳細については、「Pin-Centric 処理 および Filter-Centric 処理を参照してください。
KsPinGetTrailingEdgeStreamPointer は、KSPIN_FLAG_DISTINCT_TRAILING_EDGE フラグを設定してキューが個別の末尾の端を持つことがピンのピン記述子によって指定されていない限り、機能しません。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Microsoft Windows XP 以降のオペレーティング システムと DirectX 8.0 以降の DirectX バージョンで使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ks.h (Ks.h を含む) |
ライブラリ | Ks.lib |
IRQL | <=DISPATCH_LEVEL |
関連項目
KsPinGetLeadingEdgeStreamPointer
KsStreamPointerAdvance の
KsStreamPointerAdvanceOffsetsAndUnlock の
KsStreamPointerClone の
KsStreamPointerDelete を する
KsStreamPointerLock を する
KsStreamPointerUnlock の