Метод IMiniportWaveRTOutputStream::GetPacketCount (portcls.h)

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

Синтаксис

NTSTATUS GetPacketCount(
  [out] ULONG *pPacketCount
);

Параметры

[out] pPacketCount

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

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

GetPacketCount возвращает 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 и более поздних версиях.
целевая платформа Виндоус
заголовка portcls.h
IRQL Пассивный уровень

См. также

IMiniportWaveRTOutputStream