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 |
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 |