Funzione AcxStreamCreate (acxstreams.h)
AcxStreamCreate crea un Stream ACX che può essere usato per controllare il comportamento di streaming.
Sintassi
NTSTATUS AcxStreamCreate(
WDFDEVICE Device,
ACXCIRCUIT Circuit,
PWDF_OBJECT_ATTRIBUTES Attributes,
PACXSTREAM_INIT *Config,
ACXSTREAM *Stream
);
Parametri
Device
Oggetto WDFDEVICE (descritto in Riepilogo degli oggetti framework) associato al flusso ACXCIRCUIT e al flusso specificati.
Circuit
ACXCIRCUIT a cui verrà associato questo flusso.
Attributes
Attributi aggiuntivi definiti usando un WDF_OBJECT_ATTRIBUTES utilizzati per impostare i valori dei vari oggetti: pulizia ed eliminazione definitiva di callback, tipo di contesto e per specificare il relativo oggetto padre.
Config
Struttura ACXSTREAM_INIT che definisce i parametri di inizializzazione del flusso. Per altre informazioni sugli oggetti ACX, vedere ACX - Riepilogo degli oggetti ACX.
Stream
Puntatore a una posizione che riceve un handle per il nuovo oggetto ACXSTREAM.
Un oggetto ACXSTREAM rappresenta un flusso audio creato da un circuito. Per altre informazioni, vedere ACX - Riepilogo degli oggetti ACX.
Valore restituito
Restituisce STATUS_SUCCESS
se la chiamata ha avuto esito positivo. In caso contrario, restituisce un codice di errore appropriato. Per altre informazioni, vedere Uso dei valori NTSTATUS.
Commenti
Dopo aver creato ACXSTREAM, il driver può aggiungere uno o più elementi ACX al flusso. Per impostazione predefinita, gli elementi ACX sono connessi nello stesso ordine di assembly. Un ACXSTREAM è associato a un solo ACXCIRCUIT. ACX supporta due tipi di flussi: gli oggetti di flusso ACX di base usati dai circuiti non di streaming e gli oggetti di flusso ACX RealTime (RT) usati dai circuiti di streaming.
AcXSTREAM creato da AcxStreamCreate consentirà al driver di ricevere segnali di controllo e modifiche di stato associate a un flusso. Tuttavia, ACXSTREAM non supporterà lo streaming di dati audio da o verso il sistema operativo. Un driver che supporta lo streaming di dati audio deve usare AcxRtStreamCreate per creare un ACXSTREAM con supporto per lo streaming. Per un endpoint creato da più ACXCIRCUIT tra più driver, ACXCIRCUIT che ospita il pin di streaming creerebbe un Stream ACX RT mentre gli altri ACXCIRCUIT nell'endpoint creerebbero flussi ACX ACX non RT.
Esempio
Di seguito è illustrata la creazione del flusso di esempio.
//
// 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);
Requisiti di ACX
Versione minima di ACX: 1.0
Per altre informazioni sulle versioni ACX, vedere La panoramica della versione di ACX.
Requisiti
Requisito | Valore |
---|---|
Intestazione | acxstreams.h |
IRQL | PASSIVE_LEVEL |