функция обратного вызова 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.
Remarks
Пример
Ниже приведен пример использования.
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 |