EVT_ACX_STREAM_GET_HW_LATENCY callback function (acxstreams.h)

The EvtAcxStreamGetHwLatency event tells the driver to provide stream latency for the specific circuit of this stream (overall latency will be a sum of the latency of the different circuits).

Syntax

EVT_ACX_STREAM_GET_HW_LATENCY EvtAcxStreamGetHwLatency;

NTSTATUS EvtAcxStreamGetHwLatency(
  ACXSTREAM Stream,
  ULONG *FifoSize,
  ULONG *Delay
)
{...}

Parameters

Stream

An ACXSTREAM object represents an audio stream created by a circuit. The stream is composed of a list of elements created based on the parent circuit's elements. For more information, see ACX - Summary of ACX Objects.

FifoSize

The FifoSize in bytes.

Delay

The Delay in 100-nanosecond units.

Return value

Returns STATUS_SUCCESS if the call was successful. Otherwise, it returns an appropriate error code. For more information, see Using NTSTATUS Values.

Remarks

Example usage is shown below.

    //
    // Init streaming callbacks.
    //
    ACX_RT_STREAM_CALLBACKS rtCallbacks;
    ACX_RT_STREAM_CALLBACKS_INIT(&rtCallbacks);
    
    rtCallbacks.EvtAcxStreamGetHwLatency = EvtStreamGetHwLatency;

    status = AcxStreamInitAssignAcxRtStreamCallbacks(StreamInit, &rtCallbacks));
PAGED_CODE_SEG
NTSTATUS
EvtStreamGetHwLatency(
    _In_ ACXSTREAM Stream,
    _Out_ ULONG * FifoSize,
    _Out_ ULONG * Delay
)
{
    PSTREAM_CONTEXT ctx;

    PAGED_CODE();

    ctx = GetStreamContext(Stream);

    *FifoSize = ctx->DmaFifoSize;
    *Delay = ctx->ChipsetDelay + ctx->CodecDelay;

    return STATUS_SUCCESS;
}

ACX requirements

Minimum ACX version: 1.0

For more information about ACX versions, see ACX version overview.

Requirements

Requirement Value
Header acxstreams.h
IRQL PASSIVE_LEVEL

See also