Condividi tramite


EVT_ACX_STREAM_PAUSE funzione di callback (acxstreams.h)

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

Sintassi

EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;

NTSTATUS EvtAcxStreamPause(
  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 stati diversi. 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 EvtAcxStreamPause eseguirà la transizione dello stato del flusso dallo stato Run allo stato Pause. Quando il flusso è nello stato Pause, il driver può ricevere l'evento EvtAcxStreamRun per passare allo stato Run oppure il driver potrebbe ricevere l'evento EvtAcxStreamReleaseHardware per passare allo stato Stop.

Durante l'accensione e la rimozione del dispositivo ACX, se sono presenti flussi, ACX chiamerà EvtAcxStreamPause per eseguire la transizione dei flussi a Pausa. Questo è Stream ambito dell'istanza.

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

Stato di avvio Stato finale Evento driver ACX chiamato Note
STOP ACQUISIRE PrepareHardware Il driver esegue allocazioni e preparativi hardware
ACQUISIRE PAUSE (Nessuna chiamata)
PAUSE ESEGUI Esegui
ESEGUI PAUSE Sospendi
PAUSE ACQUISIRE (Nessuna chiamata)
ACQUISIRE STOP ReleaseHardware Il driver rilascia le allocazioni hardware

Esempio

Di seguito è riportato un esempio di utilizzo.

    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamPause = EvtStreamPause;
    ...
    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
#pragma code_seg("PAGE")
NTSTATUS
EvtStreamPause(
    _In_ ACXSTREAM Stream
    )
{
    PSTREAM_CONTEXT ctx;
    NTSTATUS        status = STATUS_SUCCESS;

    PAGED_CODE();

    ctx = GetStreamContext(Stream);

    status = TransitionStreamToPause(Stream);

    ctx->StreamState = AcxStreamStatePause;

    return status;
}

Requisiti di ACX

Versione minima di ACX: 1.0

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

Requisiti

Requisito Valore
Intestazione acxstreams.h
IRQL PASSIVE_LEVEL

Vedi anche