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 |