Freigeben über


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

Weitere Informationen