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


Функция 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

См. также