EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS função de retorno de chamada (acxelements.h)

O retorno de chamada EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS é implementado pelo driver e é chamado quando os limites de tamanho do buffer para um determinado formato de dados são solicitados para o mecanismo de áudio especificado.

Sintaxe

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS EvtAcxAudioengineRetrieveBufferSizeLimits;

NTSTATUS EvtAcxAudioengineRetrieveBufferSizeLimits(
  ACXAUDIOENGINE AudioEngine,
  ACXDATAFORMAT Format,
  PULONG MinBufferSizeInBytes,
  PULONG MaxBufferSizeInBytes
)
{...}

Parâmetros

AudioEngine

O objeto ACXAUDIOENGINE para o qual os limites de tamanho do buffer foram solicitados. Para obter mais informações sobre objetos ACX, consulte Resumo de objetos ACX.

Format

O ACXDATAFORMAT para o qual o retorno de chamada está determinando os tamanhos de buffer mínimo e máximo com os quais o mecanismo de áudio pode acomodá-lo.

MinBufferSizeInBytes

O tamanho mínimo do buffer que o mecanismo de áudio de hardware pode dar suporte para o formato de dados fornecido, na instância em que ele é chamado. O tamanho do buffer é especificado em bytes.

MaxBufferSizeInBytes

O tamanho máximo do buffer que o mecanismo de áudio de hardware pode dar suporte para o formato de dados fornecido, na instância em que ele é chamado. O tamanho do buffer é especificado em bytes.

Retornar valor

Retorna STATUS_SUCCESS se a chamada foi bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. Para obter mais informações, consulte Usando valores NTSTATUS.

Comentários

Exemplo

O uso de exemplo é mostrado abaixo.

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS CodecR_EvtAcxAudioEngineRetrieveBufferSizeLimits;

NTSTATUS
CodecR_EvtAcxAudioEngineRetrieveBufferSizeLimits(
    _In_    ACXAUDIOENGINE  AudioEngine,
    _In_    ACXDATAFORMAT   DataFormat,
    _Out_   PULONG          MinBufferBytes,
    _Out_   PULONG          MaxBufferBytes
    )
{
    PAGED_CODE();

    ULONG bytesPerSecond = AcxDataFormatGetAverageBytesPerSec(DataFormat);

    *MinBufferBytes = (ULONG) (MIN_AUDIOENGINE_BUFFER_DURATION_IN_MS * bytesPerSecond / 1000);
    *MaxBufferBytes = (ULONG) (MAX_AUDIOENGINE_BUFFER_DURATION_IN_MS * bytesPerSecond / 1000);

    return STATUS_SUCCESS;
}

Requisitos do ACX

Versão mínima do ACX: 1.0

Para obter mais informações sobre as versões do ACX, consulte Visão geral da versão do ACX.

Requisitos

Requisito Valor
Cabeçalho acxelements.h
IRQL PASSIVE_LEVEL

Confira também