Freigeben über


AcxStreamCreate-Funktion (acxstreams.h)

AcxStreamCreate erstellt eine ACX-Stream, die 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 (beschrieben in Summary of Framework Objects), das dem angegebenen ACXCIRCUIT und dem zugehörigen Stream zugeordnet ist.

Circuit

Die ACXCIRCUIT, mit der dieser Stream verknüpft wird.

Attributes

Zusätzliche Attribute, die mithilfe einer WDF_OBJECT_ATTRIBUTES definiert werden, die zum Festlegen der Werte des verschiedenen Objekts 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-Objekten.

Stream

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

Ein ACXSTREAM-Objekt stellt einen audiostream dar, der von einer Verbindung erstellt wird. 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

Nachdem ACXSTREAM erstellt wurde, kann der Treiber dem Stream 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 Streams: grundlegende ACX-Streamobjekte, die von Nicht-Streaming-Leitungen verwendet werden, und ACX RealTime-Streamobjekte (RT), die von Streamingschaltungen verwendet werden.

Der von AcxStreamCreate erstellte ACXSTREAM ermöglicht es dem Treiber, Steuersignale und Zustandsänderungen zu empfangen, die einem Stream zugeordnet sind. AcXSTREAM unterstützt jedoch kein Streaming von Audiodaten zum oder vom Betriebssystem. Ein Treiber, der das Streaming 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 erstellt wird, erstellt der ACXCIRCUIT, der den Streaming-Pin hostet, eine ACX RT-Stream während die anderen ACXCIRCUITs im Endpunkt ACX-Nicht-RT ACX-Streams erstellen.

Beispiel

Das Beispiel für die Datenstromerstellung ist unten dargestellt.

    //
    // 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

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