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


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

См. также

  • заголовка acxstreams.h