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 主要用于以引脚为中心的筛选器。 有关详细信息,请参阅 以引脚为中心的处理 和 以筛选器为中心的处理。
KsPinGetTrailingEdgeStreamPointer 将不起作用,除非引脚的引脚描述符通过设置KSPIN_FLAG_DISTINCT_TRAILING_EDGE标志来指定队列具有不同的尾随边缘。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Microsoft Windows XP 及更高版本的操作系统以及 DirectX 8.0 及更高版本的 DirectX。 |
目标平台 | 通用 |
标头 | ks.h (包括 Ks.h) |
Library | Ks.lib |
IRQL | <=DISPATCH_LEVEL |
另请参阅
KsPinGetLeadingEdgeStreamPointer