EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS función de devolución de llamada (acxelements.h)

El controlador implementa la EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS devolución de llamada y se llama cuando se solicitan los límites de tamaño del búfer para un formato de datos determinado para el motor de audio especificado.

Sintaxis

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS EvtAcxAudioengineRetrieveBufferSizeLimits;

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

Parámetros

AudioEngine

Objeto ACXAUDIOENGINE para el que se han solicitado los límites de tamaño del búfer. Para obtener más información sobre los objetos ACX, vea Resumen de objetos ACX.

Format

ACXDATAFORMAT para el que la devolución de llamada determina los tamaños de búfer mínimo y máximo con el que el motor de audio puede acomodarlo.

MinBufferSizeInBytes

Tamaño mínimo del búfer que el motor de audio de hardware puede admitir para el formato de datos especificado, en la instancia de cuando se llama a . El tamaño del búfer se especifica en bytes.

MaxBufferSizeInBytes

El tamaño máximo del búfer que el motor de audio de hardware puede admitir para el formato de datos especificado, en la instancia de cuando se llama a . El tamaño del búfer se especifica en bytes.

Valor devuelto

Devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. Para obtener más información, vea Uso de valores NTSTATUS.

Comentarios

Ejemplo

A continuación se muestra un ejemplo de uso.

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

Versión mínima de ACX: 1.0

Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.

Requisitos

Requisito Valor
Header acxelements.h
IRQL PASSIVE_LEVEL

Consulte también