EVT_ACX_STREAM_PAUSE Rückruffunktion (acxstreams.h)
Das EvtAcxStreamPause-Ereignis weist den Treiber an, den Streamstatus von Ausführen auf Anhalten umzustellen.
Syntax
EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;
NTSTATUS EvtAcxStreamPause(
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 Leitung 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 entsprechender 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 fließt nicht und die Audiohardware ist nicht vorbereitet (STOP-Zustand).
Das EvtAcxStreamPause-Ereignis wechselt den Streamzustand vom Ausführungszustand in den Zustand Anhalten. Sobald sich der Stream im Zustand Pause befindet, empfängt der Treiber möglicherweise das EvtAcxStreamRun-Ereignis , um in den Ausführungszustand zu wechseln, oder der Treiber empfängt das EvtAcxStreamReleaseHardware-Ereignis , um in den Status Stop zu wechseln.
Wenn während des Herunter- und Entfernens des ACX-Geräts Datenströme vorhanden sind, ruft ACX evtAcxStreamPause auf, um Streams in Pause zu überführen. Dies ist Stream Instanz im Bereich.
ACX-Ereignisse entsprechen KS-Zuständen, wie in dieser Tabelle beschrieben.
Startzustand | Endzustand | ACX-Treiberereignis namens | Hinweise |
---|---|---|---|
STOP | ERWERBEN | VorbereitenHardware | 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
Die Verwendungsbeispiele finden Sie unten.
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;
}
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 |