Compartilhar via


função de retorno de chamada EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION (acxelements.h)

A função de retorno de chamada EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION é implementada pelo driver e é chamada para recuperar a posição atual dentro dos dados de áudio que estão sendo renderizados no nó do mecanismo de áudio de fluxo.

Sintaxe

EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_PRESENTATION_POSITION EvtAcxStreamaudioengineRetrievePresentationPosition;

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

Parâmetros

StreamAudioEngine

Um objeto ACXSTREAMAUDIOENGINE existente, inicializado. Para obter mais informações sobre objetos ACX, consulte Resumo de objetos ACX.

PositionInBlocks

Especifica o deslocamento de bloco do início do fluxo para a posição pós-decodificada e descompactada atual no fluxo. Consulte KSAUDIO_PRESENTATION_POSITION estrutura para obter mais informações sobre esse valor.

QPCPosition

Especifica o valor do contador de desempenho no momento em que o driver de áudio lê a posição da apresentação em resposta ao retorno de chamada. Consulte KSAUDIO_PRESENTATION_POSITION estrutura para obter mais informações sobre esse valor.

Retornar valor

Retorna STATUS_SUCCESS se a chamada foi bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. Para obter mais informações, consulte Usando valores NTSTATUS.

Comentários

Exemplo

O uso de exemplo é mostrado abaixo.

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;
}

Requisitos do ACX

Versão mínima do ACX: 1.0

Para obter mais informações sobre as versões do ACX, consulte Visão geral da versão do ACX.

Requisitos

Requisito Valor
Cabeçalho acxelements.h
IRQL PASSIVE_LEVEL

Confira também