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

另請參閱