Partager via


AcxCircuitCreate, fonction (acxcircuit.h)

La fonction AcxCircuitCreate est utilisée pour créer un ACXCIRCUIT.

Syntaxe

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

Paramètres

Device

Objet WDFDEVICE (décrit dans Summary of Framework Objects) qui sera associé au circuit.

Attributes

Attributs supplémentaires définis à l’aide d’un WDF_OBJECT_ATTRIBUTES utilisé pour définir les valeurs de l’objet : nettoyer et détruire les rappels, le type de contexte et spécifier son objet WDF parent.

Config

Structure ACXCIRCUIT_INIT qui définit l’initialisation de la fabrique de circuit. ACXCIRCUIT_INIT est un objet opaque utilisé pour l’initialisation d’usine de circuit. Utilisez AcxCircuitInitAllocate pour initialiser la structure ACXCIRCUIT_INIT.

Circuit

Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet ACXCIRCUIT. Pour plus d’informations, consultez Résumé des objets ACX.

Valeur de retour

Retourne STATUS_SUCCESS si l’appel a réussi. Sinon, elle retourne un code d’erreur approprié. Pour plus d’informations, consultez Using NTSTATUS Values.

Remarques

Un ACXCIRCUIT représente un chemin audio complet ou partiel (multi-circuit) vers un appareil audio perçu par l’utilisateur (haut-parleurs, micro, etc.).

AcXCIRCUIT a au moins une broche d’entrée (ACXPIN) et une broche de sortie (ACXPIN), et peut agréger un ou plusieurs objets ACXELEMENTS. Par défaut, les ACXELEMENTs sont « connectés » dans le même ordre d’assembly.

Exemple

L’exemple d’utilisation est illustré ci-dessous.

    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);

Configuration requise pour ACX

version minimale d’ACX : 1.0

Pour plus d’informations sur les versions ACX, consultez vue d’ensemble de la version ACX.

Exigences

Exigence Valeur
d’en-tête acxcircuit.h
IRQL PASSIVE_LEVEL

Voir aussi