次の方法で共有


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

こちらもご覧ください