Поделиться через


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

См. также раздел