다음을 통해 공유


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

하드웨어 오디오 엔진이 호출할 때 instance 지정된 데이터 형식에 대해 지원할 수 있는 최소 버퍼 크기입니다. 버퍼 크기는 바이트로 지정됩니다.

MaxBufferSizeInBytes

하드웨어 오디오 엔진이 호출할 때 instance 지정된 데이터 형식에 대해 지원할 수 있는 버퍼의 최대 크기입니다. 버퍼 크기는 바이트로 지정됩니다.

반환 값

호출이 성공하면 를 반환합니다 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

추가 정보