KSPROPERTY_RTAUDIO_PACKETCOUNT

KSPROPERTY_RTAUDIO_PACKETCOUNT возвращает (на основе 1) количество пакетов, полностью переданных из буфера WaveRT в оборудование.

Сводная таблица использования

Получить Присвойте параметру Назначение Тип дескриптора свойства Тип значения свойства

Да

Нет

Pin

KSPROPERTY

ULONG

Дескриптор свойства (данные экземпляра) является структурой KSPROPERTY . Перед отправкой запроса клиент загружает структуру с (на основе 1) числом пакетов, полностью переданных из буфера WaveRT в оборудование.

Значение свойства — это переменная типа ULONG.

Возвращаемое значение

Запрос свойства KSPROPERTY_RTAUDIO_PACKETCOUNT возвращает STATUS_SUCCESS, указывающий на успешное выполнение. В противном случае запрос возвращает соответствующий код состояния сбоя.

Комментарии

Из числа пакетов ОС может наследовать позицию потока пакетов, записываемых в буфер WaveRT. Ос также может наследовать позицию буфера WaveRT следующего пакета для записи в буфер WaveRT. Для драйверов WaveRT драйвер сигнализирует об одном событии уведомления при передаче данных из каждого пакета буфера WaveRT. Поэтому само по себе событие не может указать, какой пакет в буфере WaveRT передается. В обычной работе это не является проблемой, но в случаях с неполным потоком исправление легче достигается путем запроса количества пакетов, из которого ОС может определить, какой пакет будет записываться далее.

Возвращаемое значение PacketCount указывает (на основе 1) количество пакетов, полностью переданных из буфера WaveRT в оборудование. На основе этого ОС может определить номер передаваемого пакета на основе 0 и обеспечить запись перед этим пакетом. Например, если число пакетов равно 5, то 5 пакетов полностью переданы. То есть пакеты 0–4 полностью переданы. Поэтому выполняется пакет 5, и ОС должна записать пакет 6. Если число уведомлений для буфера WaveRT равно 2, то пакет 6 будет иметь смещение 0 в буфере WaveRT (так как 6 по модулю 2 равно 0, а размер пакета в 0 раз равен 0).

Ос может получить это свойство в любое время. Однако обычно оно получает это свойство только периодически или после того, как драйвер возвращает ошибку потока данных (STATUS_DATA_LATE_ERROR, STATUS_DATA_OVERRUN) из SetWritePacket() для повторной синхронизации с драйвером.

Драйвер должен сбросить число пакетов до 0, когда поток находится в KSSTATE_STOP.

Требования

Версия

Доступно в Windows 10 и более поздних операционных системах Windows.

Заголовок

Ksmedia.h

См. также

KSPROPSETID_RTAudio