AcxRtStreamCreate-Funktion (acxstreams.h)
AcxRtStreamCreate erstellt einen ACX RTStream-Audiostream, der vom Betriebssystem zum Streamen von Audiodaten verwendet wird.
Syntax
NTSTATUS AcxRtStreamCreate(
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 AcxRtStreamCreate erstellte ACXSTREAM ermöglicht es dem Treiber, Steuerungssignale und Zustandsänderungen zu empfangen, die einem Datenstrom zugeordnet sind. AcXSTREAM unterstützt auch das Streamen von Audiodaten an oder vom Betriebssystem. 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 Rt-Datenstromerstellung 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);
//
// Init RT Streaming callbacks.
//
ACX_RT_STREAM_CALLBACKS rtCallbacks;
ACX_RT_STREAM_CALLBACKS_INIT(&rtCallbacks);
rtCallbacks.EvtAcxStreamGetHwLatency = EvtStreamGetHwLatency;
rtCallbacks.EvtAcxStreamAllocateRtPackets = EvtStreamAllocateRtPackets;
rtCallbacks.EvtAcxStreamFreeRtPackets = EvtStreamFreeRtPackets;
rtCallbacks.EvtAcxStreamSetRenderPacket = EvtStreamSetRenderPacket;
rtCallbacks.EvtAcxStreamGetCurrentPacket = EvtStreamGetCurrentPacket;
rtCallbacks.EvtAcxStreamGetPresentationPosition = EvtStreamGetPresentationPosition;
status = AcxStreamInitAssignAcxRtStreamCallbacks(StreamInit, &rtCallbacks);
//
// 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 = AcxRtStreamCreate(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 |