Compartilhar via


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

KSRTAUDIO_BUFFER_PROPERTY

KSRTAUDIO_BUFFER

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

Confira também

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION