KSPROPERTY_RTAUDIO_BUFFER
A propriedade KSPROPERTY_RTAUDIO_BUFFER especifica um buffer cíclico alocado por driver para dados de áudio.
A tabela a seguir resume os recursos dessa propriedade.
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) consiste em uma estrutura KSRTAUDIO_BUFFER_PROPERTY que contém uma estrutura KSPROPERTY junto com outros membros. O cliente grava o tamanho do buffer solicitado na estrutura . Se o cliente não precisar trabalhar com um endereço base específico, ele deverá especificar o endereço base como NULL.
O valor da propriedade (dados de operação) é uma estrutura do tipo KSRTAUDIO_BUFFER. O driver preenche essa estrutura com o tamanho real do buffer, o endereço base e o sinalizador de barreira de memória para o buffer cíclico alocado.
Valor retornado
Uma solicitação de propriedade KSPROPERTY_RTAUDIO_BUFFER retorna STATUS_SUCCESS para indicar que foi concluída com êxito. Caso contrário, a solicitação retornará uma falha apropriada status código. A tabela a seguir mostra alguns dos possíveis códigos de status de falha.
Código de status | Significado |
---|---|
STATUS_UNSUCCESSFUL |
Um buffer cíclico com a combinação especificada de atributos de buffer não pode ser alocado. |
STATUS_INSUFFICIENT_RESOURCES |
Não é possível alocar memória para o buffer. |
STATUS_DEVICE_NOT_READY |
O dispositivo não está pronto |
Comentários
O endereço base é o endereço de memória virtual no início do buffer cíclico. O cliente pode acessar diretamente o buffer nesse endereço. O buffer é contíguo na memória virtual. A decisão de tornar o buffer contíguo na memória física é deixada para o driver.
O cliente deve definir o endereço base no descritor de propriedade como NULL. O driver define o endereço base no valor da propriedade como o endereço virtual do buffer de áudio alocado.
Normalmente, o hardware de áudio requer que o buffer de áudio comece e termine em limites de exemplo ou atenda a outros tipos de restrições de alinhamento dependentes de hardware. Se houver memória suficiente disponível, o tamanho real do buffer será o tamanho solicitado arredondado (para cima ou para baixo) para o exemplo mais próximo ou outro limite com restrição de hardware. O tamanho real deve ser pelo menos o tamanho solicitado; caso contrário, o mecanismo de áudio WASAPI (API de Sessão de Áudio) não usará o buffer e a criação do fluxo falhará.
Se uma solicitação de propriedade KSPROPERTY_RTAUDIO_BUFFER for bem-sucedida, o valor da propriedade, que é uma estrutura do tipo KSRTAUDIO_BUFFER, conterá o endereço e o tamanho do buffer alocado pelo driver.
Fechar o pino libera automaticamente o buffer alocado por meio dessa propriedade.
Se quiser notificações de eventos, chame KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION em vez de KSPROPERTY_RTAUDIO_BUFFER.
Requisitos
Versão |
Disponível no Windows Vista e em sistemas operacionais Windows posteriores. |
parâmetro |
Ksmedia.h |