Compartir a través de


Función AcxCircuitCreate (acxcircuit.h)

La función AcxCircuitCreate se usa para crear un ACXCIRCUIT.

Sintaxis

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

Parámetros

Device

Objeto WDFDEVICE (descrito en Resumen de objetos de marco) que se asociará al circuito.

Attributes

Atributos adicionales definidos mediante un WDF_OBJECT_ATTRIBUTES que se usan para establecer los valores de los distintos objetos: limpieza y destrucción de devoluciones de llamada, tipo de contexto y para especificar su objeto WDF primario.

Config

Estructura ACXCIRCUIT_INIT que define la inicialización del generador de circuitos. ACXCIRCUIT_INIT es un objeto opaco que se usa para la inicialización del generador de circuitos. Use AcxCircuitInitAllocate para inicializar la estructura de ACXCIRCUIT_INIT.

Circuit

Puntero a una ubicación que recibe un identificador para el nuevo objeto ACXCIRCUIT. Para obtener más información, vea Resumen de objetos ACX.

Valor devuelto

Devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. Para obtener más información, vea Uso de valores NTSTATUS.

Comentarios

Un ACXCIRCUIT representa una ruta de acceso de audio completa o parcial (multicircuito) a un dispositivo de audio percibido por el usuario (altavoces, micrófono, etc.).

Un ACXCIRCUIT tiene al menos un pin de entrada (ACXPIN) y un pin de salida (ACXPIN), y puede agregar uno o varios objetos ACXELEMENTS. De forma predeterminada, los ACXELEMENT están "conectados" en el mismo orden de ensamblado.

Ejemplo

A continuación se muestra el uso de ejemplo.

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

Requisitos de ACX

Versión mínima de ACX: 1.0

Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.

Requisitos

Requisito Valor
Header acxcircuit.h
IRQL PASSIVE_LEVEL

Consulte también