AcxRtStreamNotifyPacketComplete 函数 (acxstreams.h)

数据包完成后,驱动程序会调用 AcxRtStreamNotifyPacketComplete 。 包括数据包完成时间和从 0 开始的数据包索引,以提高客户端性能。 ACX 框架将设置与流关联的任何通知事件。

语法

NTSTATUS AcxRtStreamNotifyPacketComplete(
  ACXSTREAM Stream,
  ULONGLONG CompletedPacket,
  ULONGLONG QPCCompletion
);

参数

Stream

现有的 ACXSTREAM 对象。 ACXSTREAM 对象表示线路创建的音频流。 该流由基于父线路的元素创建的元素列表组成。

CompletedPacket

从 0 开始的数据包索引,指示刚刚完成的数据包。

QPCCompletion

KeQueryPerformanceCounter 返回的数据包完成时间。 此值应尽可能接近实际硬件完成 (例如,驱动程序可以从其中断服务例程) 中调用 KeQueryPerformanceCounter。

返回值

STATUS_SUCCESS如果调用成功,则返回 。 否则,它将返回相应的错误代码。 有关详细信息,请参阅 使用 NTSTATUS 值

注解

AcxRtStreamNotifyPacketComplete 必须在DISPATCH_LEVEL或更低位置调用。

示例

示例用法如下所示。

completedPacket = (ULONG)InterlockedIncrement((LONG*)&m_CurrentPacket) - 1;

InterlockedExchange64(&m_LastPacketStart.QuadPart, m_CurrentPacketStart.QuadPart);
InterlockedExchange64(&m_CurrentPacketStart.QuadPart, QPC.QuadPart);

// Tell ACX we've completed the packet.
(void)AcxRtStreamNotifyPacketComplete(m_Stream, completedPacket, QPC.QuadPart);

ACX 要求

最低 ACX 版本: 1.0

有关 ACX 版本的详细信息,请参阅 ACX 版本概述

要求

要求
Header acxstreams.h
IRQL <= DISPATCH_LEVEL

另请参阅