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


функция обратного вызова 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.

Remarks

Пример

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

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

См. также раздел