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 |