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 版本概述。
要求
要求 | 价值 |
---|---|
标头 | acxstreams.h |
IRQL | <= DISPATCH_LEVEL |