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 |