функция обратного вызова EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_LINEAR_BUFFER_POSITION (acxelements.h)
Обратный вызов EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_LINEAR_BUFFER_POSITION реализуется драйвером и вызывается при запросе линейного буферного положения для указанного звукового модуля потока.
Синтаксис
EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_LINEAR_BUFFER_POSITION EvtAcxStreamaudioengineRetrieveLinearBufferPosition;
NTSTATUS EvtAcxStreamaudioengineRetrieveLinearBufferPosition(
ACXSTREAMAUDIOENGINE StreamAudioEngine,
PULONGLONG Position
)
{...}
Параметры
StreamAudioEngine
Существующий, инициализированный объект ACXSTREAMAUDIOENGINE. Дополнительные сведения о объектах ACX см. в сводке по объектам ACX.
Position
Значение ULONGLONG, представляющее количество байтов, которое DMA извлекает из звукового буфера указанного звукового модуля потока с начала потока.
Возвращаемое значение
Возвращает STATUS_SUCCESS
, если вызов выполнен успешно. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в использовании значений NTSTATUS.
Замечания
Пример
Ниже показан пример использования.
EVT_ACX_STREAMAUDIOENGINE_RETRIEVE_LINEAR_BUFFER_POSITION CodecR_EvtAcxStreamAudioEngineRetrieveLinearBufferPosition;
NTSTATUS
CodecR_EvtAcxStreamAudioEngineRetrieveLinearBufferPosition(
_In_ ACXSTREAMAUDIOENGINE StreamAudioEngine,
_Out_ PULONGLONG Position
)
{
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->GetLinearBufferPosition(Position);
}
return status;
}
Требования к ACX
минимальная версия ACX: 1.0
Дополнительные сведения о версиях ACX см. в обзоре версий ACX.
Требования
Требование | Ценность |
---|---|
заголовка | acxelements.h |
IRQL | PASSIVE_LEVEL |