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 呼叫,否則會指向佇列中最舊的數據。 如果已複製的數據流指標存在比尾端邊緣指向的框架,則佇列中也可以有較舊的數據。
位於前置邊緣串流指標與尾端邊緣數據流指標之間之視窗的數據框架至少有一個參考計數,因此在結束視窗之前,不會離開佇列並完成,直到它們結束窗口為止。 請注意,前置邊緣與尾端邊緣之間的框架 預設不會 鎖定,因此可以取消。
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