Поделиться через


Функция AcxCircuitCreate (acxcircuit.h)

Функция AcxCircuitCreate используется для создания ACXCIRCUIT.

Синтаксис

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

Параметры

Device

Объект WDFDEVICE ( описанный в разделе Сводка объектов платформы), который будет связан с каналом.

Attributes

Дополнительные атрибуты, определенные с помощью WDF_OBJECT_ATTRIBUTES , которые используются для задания значений различных объектов: очистки и уничтожения обратных вызовов, типа контекста, а также для указания родительского объекта WDF.

Config

Структура ACXCIRCUIT_INIT, которая определяет инициализацию фабрики каналов. ACXCIRCUIT_INIT — это непрозрачный объект, используемый для инициализации фабрики каналов. Используйте AcxCircuitInitAllocate для инициализации структуры ACXCIRCUIT_INIT.

Circuit

Указатель на расположение, которое получает дескриптор нового объекта ACXCIRCUIT. Дополнительные сведения см. в разделе Сводка по объектам ACX.

Возвращаемое значение

Возвращает значение STATUS_SUCCESS , если вызов был успешным. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.

Комментарии

ACXCIRCUIT представляет собой полный или частичный (многоканальные) звуковые пути к звуковому устройству, воспринимаемого пользователем (динамики, микрофон и т. д.).

ACXCIRCUIT имеет по крайней мере один входной контакт (ACXPIN) и один выходной контакт (ACXPIN), и он может агрегировать один или несколько объектов ACXELEMENTS. По умолчанию ACXELEMENTs подключены в том же порядке сборки.

Пример

Ниже приведен пример использования.

    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

Минимальная версия ACX: 1.0

Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.

Требования

Требование Значение
Заголовок acxcircuit.h
IRQL PASSIVE_LEVEL

См. также раздел