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 Esegui a Pausa.

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 di valori NTSTATUS.

Osservazioni

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 potrebbe ricevere l'evento evtAcxStreamRun per passare allo stato Run oppure il driver potrebbe ricevere l'evento EvtAcxStreamReleaseHardware per la transizione 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 in Pausa. Questo è l'ambito dell'istanza di flusso.

Gli eventi ACX sono analoghi agli stati KS descritti in questa tabella.

Stato iniziale Stato finale Evento del driver ACX denominato Note
FERMARSI ACQUISTARE PrepareHardware Il driver esegue allocazioni e preparativi hardware
ACQUISTARE PAUSA (Nessuna chiamata)
PAUSA CORRERE Correre
CORRERE PAUSA Pausa
PAUSA ACQUISTARE (Nessuna chiamata)
ACQUISTARE FERMARSI 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 ACX

versione minima di ACX: 1.0

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

Fabbisogno

Requisito Valore
intestazione acxstreams.h
IRQL PASSIVE_LEVEL

Vedere anche