Функция 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 |