Freigeben über


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

Weitere Informationen