Freigeben über


AcxStreamCreate-Funktion (acxstreams.h)

AcxStreamCreate erstellt einen ACX-Stream, der zum Steuern des Streamingverhaltens verwendet werden kann.

Syntax

NTSTATUS AcxStreamCreate(
  WDFDEVICE              Device,
  ACXCIRCUIT             Circuit,
  PWDF_OBJECT_ATTRIBUTES Attributes,
  PACXSTREAM_INIT        *Config,
  ACXSTREAM              *Stream
);

Parameter

Device

Ein WDFDEVICE-Objekt (in Summary of Framework Objects) beschrieben, das dem angegebenen ACXCIRCUIT und seinem Datenstrom zugeordnet ist.

Circuit

Der ACXCIRCUIT, dem dieser Datenstrom zugeordnet wird.

Attributes

Zusätzliche Attribute, die mithilfe einer WDF_OBJECT_ATTRIBUTES definiert werden, die zum Festlegen der Werte der verschiedenen Objekte verwendet werden: Bereinigen und Zerstören von Rückrufen, Kontexttyp und Angeben des übergeordneten Objekts.

Config

Eine ACXSTREAM_INIT Struktur, die die Initialisierungsparameter des Datenstroms definiert. Weitere Informationen zu ACX-Objekten finden Sie unter ACX – Zusammenfassung von ACX Objects.

Stream

Ein Zeiger auf eine Position, die ein Handle für das neue ACXSTREAM-Objekt empfängt.

Ein ACXSTREAM -Objekt stellt einen Von einem Schaltkreis erstellten Audiodatenstrom dar. Weitere Informationen finden Sie unter ACX – Zusammenfassung von ACX Objects.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn der Anruf erfolgreich war. Andernfalls wird ein entsprechender Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Verwenden von NTSTATUS-Werten.

Bemerkungen

Nachdem der ACXSTREAM erstellt wurde, kann der Treiber dem Datenstrom ein oder mehrere ACX-Elemente hinzufügen. AcX-Elemente sind standardmäßig in derselben Assemblyreihenfolge verbunden. Ein ACXSTREAM ist nur einem ACXCIRCUIT zugeordnet. ACX unterstützt zwei Arten von Datenströmen: grundlegende ACX-Streamobjekte, die von Nicht-Streaming-Schaltkreisen verwendet werden, und ACX RealTime (RT)-Streamobjekte, die von Streamingschaltungen verwendet werden.

Der von AcxStreamCreate erstellte ACXSTREAM ermöglicht es dem Treiber, Steuerungssignale und Zustandsänderungen zu empfangen, die einem Datenstrom zugeordnet sind. AcXSTREAM unterstützt jedoch das Streamen von Audiodaten auf oder vom Betriebssystem nicht. Ein Treiber, der das Streamen von Audiodaten unterstützt, sollte AcxRtStreamCreate verwenden, um einen ACXSTREAM mit Unterstützung für Streaming zu erstellen. Für einen Endpunkt, der aus mehreren ACXCIRCUITs über mehrere Treiber hinweg hergestellt wird, erstellt der ACXCIRCUIT, der den Streaming-Pin hostt, einen ACX RT-Stream, während die anderen ACXCIRCUITs im Endpunkt nicht RT ACX Streams erstellen würden.

Beispiel

Die Beispieldatenstromerstellung wird unten gezeigt.

    //
    // Init streaming callbacks.
    //
    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamPrepareHardware     = EvtStreamPrepareHardware;
    streamCallbacks.EvtAcxStreamReleaseHardware     = EvtStreamReleaseHardware;
    streamCallbacks.EvtAcxStreamRun                 = EvtStreamRun;
    streamCallbacks.EvtAcxStreamPause               = EvtStreamPause;
    streamCallbacks.EvtAcxStreamAssignDrmContentId  = EvtStreamAssignDrmContentId;

    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);

    //
    // Create the stream.
    //
    WDF_OBJECT_ATTRIBUTES attributes;
    ACXSTREAM stream;
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, STREAM_CONTEXT);
    attributes.EvtCleanupCallback = EvtStreamContextCleanup;
    attributes.EvtDestroyCallback = EvtStreamDestroy;
    status = AcxStreamCreate(Device, Circuit, &attributes, &StreamInit, &stream);

ACX-Anforderungen

Mindestens ACX-Version: 1.0

Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.

Anforderungen

Anforderung Wert
Header- acxstreams.h
IRQL- PASSIVE_LEVEL

Siehe auch