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 會傳回代表結尾邊緣數據流指標或 NULL之KSSTREAM_POINTER結構的指標。 NULL 的傳回值可能表示沒有與針腳相關聯之佇列的尾端邊緣。 在此情況下,針腳描述元可能未指定針腳應該具有不同的尾端邊緣。 或者, NULL 可以指出沒有與針腳相關聯的佇列。 在此情況下,有問題的針腳不會使用標準傳輸機制。 NULL 的傳回值也可以指出嘗試鎖定尾端邊緣失敗。 換句話說,目前沒有與前置邊緣相關聯的數據框架。
備註
尾端邊緣數據流指標是數據流中的特殊指標,只有在針腳的針腳描述項指定不同的尾端邊緣時,才會存在。 如果此指標存在,除非 KsStreamPointerAdvanceXxx 或 KsStreamPointerUnlock 呼叫特別進階,否則它會指向佇列中最舊的數據。 如果複製的數據流指標存在比尾端邊緣所指向的畫面還舊的畫面,則舊數據也可以存在於佇列中。
位於前置邊緣數據流指標和尾端邊緣數據流指標之間視窗的數據框架至少有一個參考計數,因此不會離開佇列並完成,直到它們結束視窗,因為尾端邊緣的前進結果。 請注意,前置邊緣和尾端邊緣之間的框架預設 不會 鎖定,因此可以取消。
KsPinGetTrailingEdgeStreamPointer 大部分用於以針腳為中心的篩選。 如需詳細資訊,請參閱 以針腳為中心的處理 和 篩選中心處理。
除非釘選的釘選描述項指定佇列的尾端邊緣設定KSPIN_FLAG_DISTINCT_TRAILING_EDGE旗標,否則 KsPinGetTrailingEdgeStreamPointer 將無法運作。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Microsoft Windows XP 和更新版本的作業系統和 DirectX 8.0 和更新版本的 DirectX 版本。 |
目標平台 | Universal |
標頭 | ks.h (包含 Ks.h) |
程式庫 | Ks.lib |
IRQL | <=DISPATCH_LEVEL |
另請參閱
KsPinGetLeadingEdgeStreamPointer