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 版本概述

要求

要求
Header acxelements.h
IRQL PASSIVE_LEVEL

另请参阅