Compartilhar via


KSPROPERTY_RTAUDIO_PACKETCOUNT

KSPROPERTY_RTAUDIO_PACKETCOUNT retorna a contagem (baseada em 1) de pacotes completamente transferidos do buffer WaveRT para o hardware.

Tabela de Resumo de Uso

Obter Definir Destino Tipo de descritor de propriedade Tipo de valor da propriedade

Sim

Não

Pin

KSPROPERTY

ULONG

O descritor de propriedade (dados de instância) é uma estrutura KSPROPERTY . Antes de enviar a solicitação, o cliente carrega a estrutura com a contagem (baseada em 1) de pacotes completamente transferidos do buffer WaveRT para o hardware.

O valor da propriedade é uma variável do tipo ULONG.

Valor retornado

Uma solicitação de propriedade KSPROPERTY_RTAUDIO_PACKETCOUNT retorna STATUS_SUCCESS para indicar que foi concluída com êxito. Caso contrário, a solicitação retornará uma falha apropriada status código.

Comentários

Na contagem de pacotes, o sistema operacional pode derivar a posição de fluxo dos pacotes que grava no buffer WaveRT. O sistema operacional também pode derivar a posição do buffer WaveRT do próximo pacote a ser gravado no buffer WaveRT. Para drivers WaveRT, o driver sinaliza um único evento de notificação à medida que transfere dados de cada pacote do buffer WaveRT. Portanto, o evento sozinho não pode indicar qual pacote dentro do buffer WaveRT está sendo transferido. Na operação normal, isso não é uma preocupação, mas, em casos de subfluxo, a correção é obtida mais facilmente consultando a contagem de pacotes da qual o sistema operacional pode determinar qual pacote gravar em seguida.

O PacketCount retornado indica a contagem (baseada em 1) de pacotes completamente transferidos do buffer WaveRT para o hardware. A partir disso, o sistema operacional pode determinar o número baseado em 0 do pacote que está sendo transferido no momento e garantir que ele grave antes desse pacote. Por exemplo, se a contagem de pacotes for 5, cinco pacotes serão completamente transferidos. Ou seja, os pacotes 0-4 foram completamente transferidos. Portanto, o pacote 5 está em andamento e o sistema operacional deve gravar o pacote 6. Se a contagem de notificações para o buffer WaveRT for 2, o pacote 6 estará no deslocamento 0 dentro do buffer WaveRT (porque 6 módulo 2 é 0 e 0 vezes o tamanho do pacote é 0).

O sistema operacional pode obter essa propriedade a qualquer momento. No entanto, ele geralmente obtém essa propriedade apenas periodicamente ou depois que o driver retorna um erro de fluxo de dados (STATUS_DATA_LATE_ERROR, STATUS_DATA_OVERRUN) de SetWritePacket() para ressincronizar com o driver.

O driver deve redefinir a contagem de pacotes para 0 quando o fluxo estiver em KSSTATE_STOP.

Requisitos

Versão

Disponível em sistemas operacionais Windows Windows 10 e posteriores.

Cabeçalho

Ksmedia.h

Confira também

KSPROPSETID_RTAudio