KsStreamPointerAdvanceOffsets 函数 (ks.h)

KsStreamPointerAdvanceOffsets 函数推进 StreamPointer的偏移量。

语法

KSDDKAPI NTSTATUS KsStreamPointerAdvanceOffsets(
  [in] PKSSTREAM_POINTER StreamPointer,
  [in] ULONG             InUsed,
  [in] ULONG             OutUsed,
  [in] BOOLEAN           Eject
);

参数

[in] StreamPointer

指向 KSSTREAM_POINTER 结构的指针,该结构表示要为其推进偏移量的流指针。 调用此函数时,StreamPointer 应处于锁定状态。

[in] InUsed

要推进此流指针的输入指针的字节数。

(StreamPointer -> OffsetIn)

[in] OutUsed

要推进此流指针的输出指针的字节数

(StreamPointer -> OffsetOut)

[in] Eject

此参数指示流指针是否应高级到下一个数据帧。如果此参数设置为 TRUE,AVStream 将推进流指针,而不考虑推进偏移量是否会导致流指针指向帧的末尾。

返回值

KsStreamPointerAdvanceOffsets 返回成功STATUS_SUCCESS。 如果 streamPointer 在调用时未锁定或流指针在提升后无法锁定,则返回STATUS_DEVICE_NOT_READY。

言论

AVStream 按请求的值更新传入和传出数据指针和其他相关字段。 如果推进偏移量会导致当前帧中剩余的字节数为零,AVStream 会将流指针推进到下一个数据帧并重新锁定它。

微型驱动程序有责任在调用 KsStreamPointerAdvanceOffsets之前验证 StreamPointer 是否已锁定。 此外,单个提升不能比队列中下一帧的开头更进一步的流指针。 因此,微型驱动程序不应尝试按大于 StreamPointer 的值推进偏移量 -> Offset*。剩余

另请参阅 流指针

要求

要求 价值
最低支持的客户端 Microsoft Windows XP 及更高版本的作系统以及 DirectX 8.0 及更高版本的 DirectX 版本中提供。
目标平台 普遍
标头 ks.h (包括 Ks.h)
Ks.lib
IRQL <=DISPATCH_LEVEL

另请参阅

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerLock

KsStreamPointerUnlock