KSPROCESSPIN 结构 (ks.h)
KSPROCESSPIN 结构描述特定引脚的进程状态。
语法
typedef struct _KSPROCESSPIN {
PKSPIN Pin;
PKSSTREAM_POINTER StreamPointer;
PKSPROCESSPIN InPlaceCounterpart;
PKSPROCESSPIN DelegateBranch;
PKSPROCESSPIN CopySource;
PVOID Data;
ULONG BytesAvailable;
ULONG BytesUsed;
ULONG Flags;
BOOLEAN Terminate;
} KSPROCESSPIN, *PKSPROCESSPIN;
成员
Pin
指向 KSPROCESSPIN 结构所描述的 KSPIN 结构的指针。 结构中的所有内容都引用此 KSPIN。
StreamPointer
指向 KSSTREAM_POINTER 结构的指针,该结构指向当前输入位置处的输入流,或指向当前输出位置处的输出流。 例如,可以通过输出引脚将信息标记到关联的 KSSTREAM_HEADER (ProcessPin-StreamPointer-StreamHeader-Flags>>>=...) 。
InPlaceCounterpart
指向 KSPROCESSPIN 结构的指针。 如果此 KSPROCESSPIN 不是 就地 转换的一部分,AVStream 会将 InPlaceCounterpart 设置为 NULL。 如果此 KSPROCESSPIN 是就地转换的输入, 则 InPlaceCounterpart 指向转换的输出进程引脚。 如果此 KSPROCESSPIN 是就地转换的输出, 则 InPlaceCounterpart 指向转换的输入进程引脚。
DelegateBranch
指向 KSPROCESSPIN 结构的指针。 如果从此 KSPROCESSPIN 中传出的帧被拆分并发送到多个接收器引脚,并且拆分不会导致数据复制 (也就是说,拆分以只读方式发送帧,并且所有拆分引脚实例都位于同一管道 ) ,DelegateBranch 指向进程引脚的第一个实例。 拆分器会自动处理具有非 NULLDelegateBranch 的任何进程引脚。
CopySource
指向 KSPROCESSPIN 结构的指针。 如果从此进程引脚中分离出帧并将其发送到多个接收器引脚的方式导致数据复制 (即,其中一个下游筛选器使用就地转换) 修改数据帧, 则 CopySource 指向从中复制帧的进程引脚。 拆分器会自动处理具有非 NULLCopySource 的任何进程引脚。
Data
指向缓冲区的指针。 如果此过程条目描述的引脚是输入引脚, 则数据 指向要输入的数据的下一个可用字节。 如果此进程条目描述的引脚是输出引脚, 则数据 指向在其中放置已处理数据的输出缓冲区。
BytesAvailable
此成员指定 Data 中可用的数据字节数。
BytesUsed
此成员指定进程函数已使用此数据帧的字节数。 AVStream 驱动程序应设置此成员以更新其已读取或写入的量。
Flags
如果此 KSPROCESSPIN 是输入引脚,则此成员包含相关 KSSTREAM_HEADER 结构中的标志的副本。
Terminate
此成员指示在进程调度完成后是否应向下游发送当前数据帧。 如果 为 TRUE,则即使尚未使用所有数据,也会向下游发送帧。 如果 为 FALSE,则在使用所有数据之前不会释放帧。
注解
KSPROCESSPIN 结构用于 以筛选器为中心的处理 模型。 可以使用此结构访问特定输入引脚上的数据,或将处理的数据写出到输出引脚。
只有以筛选器为中心的客户端使用进程引脚。 此外,具有非 NULLDelegateBranch 或非 NULLCopySource 的进程引脚通常不受客户端关注。 拆分器使用这些指针自动处理进程引脚。
大多数客户端都关注 成员 Pin、 Data、 BytesAvailable、 BytesUsed、 Flags 和 Terminate。 数据可以从流中读取或通过 Data 成员写入流; BytesAvailable 告知客户端当前数据帧 (缓冲区) 数据 所指向的数据字节数。 当客户端微型驱动程序读取或写入流时,应更新 BytesUsed 以反映已使用的数据字节数。 如果微型驱动程序是使用当前帧完成的,则可以设置 Terminate 标志,尽管 BytesUsed 不等于 BytesAvailable。 微型驱动程序退出处理调度后,指针会提前,并根据需要完成帧。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Microsoft Windows XP 及更高版本的操作系统以及 Microsoft DirectX 8.0 及更高版本中可用。 |
标头 | ks.h (包括 Ks.h) |