EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION 콜백 함수(acxelements.h)

EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION 콜백 함수는 드라이버에 의해 구현되며 스트림 오디오 엔진 노드로 회수되는 오디오 데이터 내에서 현재 위치를 검색하기 위해 호출됩니다.

구문

EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION EvtAcxStreamaudioengineRetrievePresentationPosition;

NTSTATUS EvtAcxStreamaudioengineRetrievePresentationPosition(
  ACXSTREAMAUDIOENGINE StreamAudioEngine,
  PULONGLONG PositionInBlocks,
  PULONGLONG QPCPosition
)
{...}

매개 변수

StreamAudioEngine

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

PositionInBlocks

스트림 시작부터 스트림의 압축되지 않은 현재 포스트 디코딩 위치까지 블록 오프셋을 지정합니다. 이 값에 대한 자세한 내용은 KSAUDIO_PRESENTATION_POSITION 구조를 참조하세요.

QPCPosition

오디오 드라이버가 콜백에 대한 응답으로 프레젠테이션 위치를 읽을 때 성능 카운터의 값을 지정합니다. 이 값에 대한 자세한 내용은 KSAUDIO_PRESENTATION_POSITION 구조를 참조하세요.

반환 값

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

설명

예제

예제 사용법은 다음과 같습니다.

EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION    CodecR_EvtAcxStreamAudioEngineRetrievePresentationPosition;

NTSTATUS
CodecR_EvtAcxStreamAudioEngineRetrievePresentationPosition(
    _In_    ACXSTREAMAUDIOENGINE    StreamAudioEngine,
    _Out_   PULONGLONG              PositionInBlocks,
    _Out_   PULONGLONG              QPCPosition
)
{
    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->GetPresentationPosition(PositionInBlocks, QPCPosition);
    }

    return status;
}

ACX 요구 사항

최소 ACX 버전: 1.0

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

요구 사항

요구 사항
헤더 acxelements.h
IRQL PASSIVE_LEVEL

추가 정보