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 的进程引脚通常不关心客户端。 拆分器使用这些指针自动处理进程引脚。
大多数客户端都关注成员 固定、数据、BytesAvailable、BytesUsed、标志和 终止。 可以通过 数据 成员从流中读取数据或写入流;BytesAvailable 告知客户端当前数据帧(缓冲区)中有多少字节可用,数据 指向。 当客户端微型驱动程序读取流或写入流时,应更新 BytesUsed 以反映已使用的数据字节数。 如果微型驱动程序使用当前帧完成,则可以设置 终止 标志,尽管 BytesUsed 不等于 BytesAvailable。 微型驱动程序退出处理调度后,指针是高级的,帧会相应地完成。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Microsoft Windows XP 及更高版本的作系统和 Microsoft DirectX 8.0 及更高版本中提供。 |
标头 | ks.h (包括 Ks.h) |