EVT_ACX_STREAM_RUN Rückruffunktion (acxstreams.h)
Das EvtAcxStreamRun-Ereignis weist den Treiber an, den Streamstatus von Anhalten in Ausführen zu wechseln.
Syntax
EVT_ACX_STREAM_RUN EvtAcxStreamRun;
NTSTATUS EvtAcxStreamRun(
ACXSTREAM Stream
)
{...}
Parameter
Stream
Ein ACXSTREAM-Objekt stellt einen audiostream dar, der von einer Verbindung erstellt wird. Der Stream besteht aus einer Liste von Elementen, die basierend auf den Elementen der übergeordneten Verbindung erstellt wurden. Weitere Informationen finden Sie unter ACX – Zusammenfassung von ACX-Objekten.
Rückgabewert
Gibt zurück STATUS_SUCCESS
, wenn der Aufruf erfolgreich war. Andernfalls wird ein geeigneter Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Verwenden von NTSTATUS-Werten.
Hinweise
Ein AcxStream unterstützt verschiedene Zustände. Diese Zustände geben an, wann Audio fließt (RUN-Zustand), Audio nicht fließt, aber die Audiohardware vorbereitet ist (PAUSE-Zustand) oder audio nicht fließt und Audiohardware nicht vorbereitet ist (STOP-Zustand).
Das EvtAcxStreamRun-Ereignis übergibt den Streamzustand vom Status Pause in den Status Ausführen. Sobald sich der Stream im Status Ausführen befindet, empfängt der Treiber möglicherweise das EvtAcxStreamPause-Ereignis , um in den Status Pause zu wechseln.
ACX-Ereignisse entsprechen KS-Zuständen, wie in dieser Tabelle beschrieben.
Startstatus | Endzustand | ACX-Treiberereignis mit dem Namen | Hinweise |
---|---|---|---|
STOP | ERWERBEN | PrepareHardware | Der Treiber führt Hardwarezuordnungen und Vorbereitungen aus. |
ERWERBEN | PAUSE | (Kein Anruf) | |
PAUSE | AUSFÜHREN | Ausführen | |
AUSFÜHREN | PAUSE | Anhalten | |
PAUSE | ERWERBEN | (Kein Anruf) | |
ERWERBEN | STOP | ReleaseHardware | Treiber gibt Hardwarezuordnungen frei |
Beispiel
Das Beispiel für die Verwendung ist unten dargestellt.
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;
}
ACX-Anforderungen
ACX-Mindestversion: 1.0
Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.
Anforderungen
Anforderung | Wert |
---|---|
Header | acxstreams.h |
IRQL | PASSIVE_LEVEL |