EVT_ACX_STREAMAUDIOENGINE_ASSIGN_LAST_BUFFER_POSITION 콜백 함수(acxelements.h)

EVT_ACX_STREAMAUDIOENGINE_ASSIGN_LAST_BUFFER_POSITION 콜백 함수는 드라이버에 의해 구현되며 지정된 스트림 오디오 엔진에 대해 오디오 버퍼의 마지막 유효한 바이트 위치가 설정될 때 호출됩니다.

구문

EVT_ACX_STREAMAUDIOENGINE_ASSIGN_LAST_BUFFER_POSITION EvtAcxStreamaudioengineAssignLastBufferPosition;

NTSTATUS EvtAcxStreamaudioengineAssignLastBufferPosition(
  ACXSTREAMAUDIOENGINE StreamAudioEngine,
  ULONG Position
)
{...}

매개 변수

StreamAudioEngine

초기화된 기존 ACXSTREAMAUDIOENGINE 개체입니다. ACX 개체에 대한 자세한 내용은 ACX 개체 요약을 참조하세요.

Position

지정된 스트림 오디오 엔진의 오디오 버퍼에 있는 마지막 유효한 바이트의 위치를 나타냅니다. 위치 값에 대한 자세한 내용은 KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_LASTBUFFER_POSITION 참조하세요.

반환 값

호출이 성공하면 를 반환합니다 STATUS_SUCCESS . 그렇지 않으면 적절한 오류 코드를 반환합니다. 자세한 내용은 NTSTATUS 값 사용을 참조하세요.

설명

예제

사용 예제는 다음과 같습니다.

EVT_ACX_STREAMAUDIOENGINE_ASSIGN_LAST_BUFFER_POSITION       CodecR_EvtAcxStreamAudioEngineAssignLastBufferPosition;

NTSTATUS
CodecR_EvtAcxStreamAudioEngineAssignLastBufferPosition(
    _In_    ACXSTREAMAUDIOENGINE    StreamAudioEngine,
    _In_    ULONG                   Position
)
{
    NTSTATUS status = STATUS_INVALID_PARAMETER;
    ACXSTREAM stream;
    PCODEC_STREAM_CONTEXT ctx;
    CRenderStreamEngine * streamEngine = NULL;

    PAGED_CODE();

    stream = AcxStreamAudioEngineGetStream(StreamAudioEngine);
    if (stream)
    {
        ctx = GetCodecStreamContext(stream);

        streamEngine = static_cast<CRenderStreamEngine*>(ctx->StreamEngine);

        status = streamEngine->SetLastBufferPosition(Position);
    }

    return status;
}

ACX 요구 사항

최소 ACX 버전: 1.0

ACX 버전에 대한 자세한 내용은 ACX 버전 개요를 참조하세요.

요구 사항

요구 사항
헤더 acxelements.h
IRQL PASSIVE_LEVEL

추가 정보