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 (beschrieben in Zusammenfassung der Frameworkobjekte), das dem angegebenen ACXCIRCUIT und seinem Stream zugeordnet ist.
Circuit
Der ACXCIRCUIT, dem dieser Stream zugeordnet 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 entsprechender Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Verwenden von NTSTATUS-Werten.
Hinweise
Nachdem der ACXSTREAM erstellt wurde, kann der Treiber dem Stream mindestens ein ACX-Element hinzufügen. AcX-Elemente sind standardmäßig in der gleichen Reihenfolge der Assembly verbunden. Ein ACXSTREAM ist nur einem ACXCIRCUIT zugeordnet. ACX unterstützt zwei Arten von Streams: einfache ACX-Streamobjekte, die von Nicht-Streaming-Leitungen verwendet werden, und ACX RealTime(RT)-Streamobjekte, die von Streamingleitungen verwendet werden.
Der von AcxRtStreamCreate erstellte ACXSTREAM ermöglicht es dem Treiber, Steuersignale und Zustandsänderungen zu empfangen, die einem Stream zugeordnet sind. Der ACXSTREAM unterstützt auch das 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 erstellt wird, erstellt der ACXCIRCUIT, der den Streaming-Pin hostet, eine ACX RT-Stream während die anderen ACXCIRCUITs im Endpunkt ACX-Streams ohne RT erstellen würden.
Beispiel
Das Beispiel für die Rt-Streamerstellung 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);
//
// 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
AcX-Mindestversion: 1.0
Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.
Anforderungen
Anforderung | Wert |
---|---|
Header | acxstreams.h |
IRQL | PASSIVE_LEVEL |