Freigeben über


AcxCircuitCreate-Funktion (acxcircuit.h)

Die AcxCircuitCreate-Funktion wird verwendet, um eine ACXCIRCUIT-Funktion zu erstellen.

Syntax

NTSTATUS AcxCircuitCreate(
  WDFDEVICE              Device,
  PWDF_OBJECT_ATTRIBUTES Attributes,
  PACXCIRCUIT_INIT       *Config,
  ACXCIRCUIT             *Circuit
);

Parameter

Device

Ein WDFDEVICE-Objekt (beschrieben in Zusammenfassung der Frameworkobjekte), das der Verbindung zugeordnet wird.

Attributes

Zusätzliche Attribute, die mithilfe eines WDF_OBJECT_ATTRIBUTES definiert werden, die verwendet werden, um die Werte des verschiedenen Objekts festzulegen: Cleanup und Destroy-Rückrufe, Kontexttyp und angeben des übergeordneten WDF-Objekts.

Config

Die ACXCIRCUIT_INIT Struktur, die die Initialisierung der Circuit Factory definiert. ACXCIRCUIT_INIT ist ein undurchsichtiges Objekt, das für die Initialisierung der Verbindungsfactory verwendet wird. Verwenden Sie AcxCircuitInitAllocate , um die ACXCIRCUIT_INIT-Struktur zu initialisieren.

Circuit

Ein Zeiger auf eine Position, die ein Handle auf das neue ACXCIRCUIT-Objekt empfängt. Weitere Informationen finden Sie unter 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

Ein ACXCIRCUIT stellt einen vollständigen oder teilweisen Audiopfad (multi-circuit) zu einem vom Benutzer wahrgenommenen Audiogerät (Lautsprecher, Mikrofon usw.) dar.

Ein ACXCIRCUIT verfügt über mindestens einen Eingabepin (ACXPIN) und einen Ausgabepin (ACXPIN) und kann ein oder mehrere ACXELEMENTS-Objekte aggregieren. Standardmäßig sind ACXELEMENTs in derselben Assemblyreihenfolge "verbunden".

Beispiel

Das Beispiel für die Verwendung ist unten dargestellt.

    status = AcxCircuitInitAssignName(circuitInit, &circuitName);
    //
    // Add circuit type.
    //
    AcxCircuitInitSetCircuitType(circuitInit, AcxCircuitTypeRender);

    //
    // Assign the circuit's pnp-power callbacks.
    //
    ACX_CIRCUIT_PNPPOWER_CALLBACKS_INIT(&powerCallbacks);
    powerCallbacks.EvtAcxCircuitPowerUp = SdcaR_EvtCircuitPowerUp;
    powerCallbacks.EvtAcxCircuitPowerDown = SdcaR_EvtCircuitPowerDown;
    
    AcxCircuitInitSetAcxCircuitPnpPowerCallbacks(circuitInit, &powerCallbacks);

    //
    // Set circuit-callbacks.
    //
    status = AcxCircuitInitAssignAcxCreateStreamCallback(
                                            circuitInit, 
                                            SdcaR_EvtCircuitCreateStream);
    
    //
    // Create the circuit.
    //
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, SDCA_RENDER_CIRCUIT_CONTEXT);   
    status = AcxCircuitCreate(Device, &attributes, &circuitInit, &circuit);

ACX-Anforderungen

ACX-Mindestversion: 1.0

Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.

Anforderungen

Anforderung Wert
Header acxcircuit.h
IRQL PASSIVE_LEVEL

Weitere Informationen