Condividi tramite


EVT_ACX_STREAM_RUN funzione di callback (acxstreams.h)

L'evento EvtAcxStreamRun indica al driver di eseguire la transizione dello stato del flusso da Pause a Run.

Sintassi

EVT_ACX_STREAM_RUN EvtAcxStreamRun;

NTSTATUS EvtAcxStreamRun(
  ACXSTREAM Stream
)
{...}

Parametri

Stream

Un oggetto ACXSTREAM rappresenta un flusso audio creato da un circuito. Il flusso è costituito da un elenco di elementi creati in base agli elementi del circuito padre. Per altre informazioni, vedere ACX - Riepilogo degli oggetti ACX.

Valore restituito

Restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. In caso contrario, restituisce un codice di errore appropriato. Per altre informazioni, vedere Uso dei valori NTSTATUS.

Commenti

AcxStream supporta diversi stati. Questi stati indicano quando l'audio scorre (stato RUN), l'audio non scorre ma l'hardware audio è preparato (stato PAUSE) o l'audio non scorre e l'hardware audio non è preparato (stato STOP).

L'evento EvtAcxStreamRun passerà lo stato del flusso dallo stato Pause allo stato Run. Una volta che il flusso si trova nello stato Run, il driver può ricevere l'evento EvtAcxStreamPause per passare allo stato Pause.

Gli eventi ACX sono simili agli stati KS, come descritto in questa tabella.

Stato iniziale Stato finale Evento ACX Driver denominato Note
STOP ACQUISIRE PrepareHardware Il driver esegue allocazioni e preparazione hardware
ACQUISIRE PAUSE (Nessuna chiamata)
PAUSE ESEGUI Esegui
ESEGUI PAUSE Sospendi
PAUSE ACQUISIRE (Nessuna chiamata)
ACQUISIRE STOP ReleaseHardware I driver rilasciano allocazioni hardware

Esempio

Di seguito è riportato l'esempio di utilizzo.

    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamRun = EvtStreamRun;
    ...
    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
_Use_decl_annotations_
PAGED_CODE_SEG
NTSTATUS
EvtStreamRun(
    _In_ ACXSTREAM Stream
    )
{
    PSTREAM_CONTEXT ctx;
    NTSTATUS        status;

    PAGED_CODE();

    ctx = GetStreamContext(Stream);

    status = TransitionStreamToRun(Stream);

    if (NT_SUCCESS(status))
    {
        ctx->StreamState = AcxStreamStateRun;
    }

    return status;
}

Requisiti ACX

Versione minima DI ACX: 1.0

Per altre informazioni sulle versioni ACX, vedere Panoramica della versione di ACX.

Requisiti

Requisito Valore
Intestazione acxstreams.h
IRQL PASSIVE_LEVEL

Vedi anche