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 Résumé des objets framework) qui sera associé au circuit.

Attributes

Attributs supplémentaires définis à l’aide d’un WDF_OBJECT_ATTRIBUTES qui sont utilisés pour définir les valeurs des différents objets : nettoyage et destruction des rappels, type de contexte et pour 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 des fabriques de circuits. 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 retournée

Retourne STATUS_SUCCESS si l’appel a réussi. Sinon, il retourne un code d’erreur approprié. Pour plus d’informations, consultez Utilisation de valeurs NTSTATUS.

Remarques

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

Un ACXCIRCUIT a au moins une broche d’entrée (ACXPIN) et une broche de sortie (ACXPIN), et il 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 d’ACX

Version minimale d’ACX : 1.0

Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.

Configuration requise

Condition requise Valeur
En-tête acxcircuit.h
IRQL PASSIVE_LEVEL

Voir aussi