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 |