Поделиться через


функция обратного вызова EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS (acxelements.h)

Обратный вызов EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS реализуется драйвером и вызывается, когда для заданного формата данных запрашиваются ограничения размера буфера для указанного звукового модуля.

Синтаксис

EVT_ACX_AUDIOENGINE_RETRIEVE_BUFFER_SIZE_LIMITS EvtAcxAudioengineRetrieveBufferSizeLimits;

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

Параметры

AudioEngine

Объект ACXAUDIOENGINE, для которого запрашивались ограничения размера буфера. Дополнительные сведения о объектах ACX см. в сводке по объектам ACX.

Format

ACXDATAFORMAT, для которого обратный вызов определяет минимальный и максимальный размер буфера, с которым модуль аудио может разместить его.

MinBufferSizeInBytes

Минимальный размер буфера, который аппаратный звуковой модуль может поддерживать для заданного формата данных, в экземпляре при вызове. Размер буфера указывается в байтах.

MaxBufferSizeInBytes

Максимальный размер буфера, который аппаратный звуковой модуль может поддерживать для заданного формата данных, в экземпляре при вызове. Размер буфера указывается в байтах.

Возвращаемое значение

Возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в использовании значений NTSTATUS.

Замечания

Пример

Ниже показан пример использования.

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

Требования к ACX

минимальная версия ACX: 1.0

Дополнительные сведения о версиях ACX см. в обзоре версий ACX.

Требования

Требование Ценность
заголовка acxelements.h
IRQL PASSIVE_LEVEL

См. также