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

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

Синтаксис

NTSTATUS AcxFactoryCircuitCreate(
  WDFDEVICE               Device,
  PWDF_OBJECT_ATTRIBUTES  Attributes,
  PACXFACTORYCIRCUIT_INIT *Config,
  ACXFACTORYCIRCUIT       *Factory
);

Параметры

Device

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

Attributes

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

Config

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

Factory

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

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

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

Комментарии

ACXFACTORYCIRCUIT используется платформой ACX для ACXCIRCUITs по запросу. ACX предложит ACXFACTORYCIRCUIT создать новый канал, если он требуется для конечной точки.

ACXFACTORYCIRCUIT используется в многоканальной конечной точке. Канал, созданный ACXFACTORYCIRCUIT, не может быть основным каналом для конечной точки, т. е. каналом, который предоставляет удостоверение конечной точки.

ACXFACTORYCIRCUIT имеет выделенную очередь WDF. Дополнительные сведения об очередях WDF см. в разделе Объекты очередей платформы.

Пример

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

    NTSTATUS                                        status;
    WDF_OBJECT_ATTRIBUTES                           attributes;
    ACXFACTORYCIRCUIT                               factory;
    PACXFACTORYCIRCUIT_INIT                         factoryInit = NULL;
    SDCAXU_FACTORYCIRCUIT_CONTEXT *                 factoryCtx;
    ACX_FACTORY_CIRCUIT_OPERATION_CALLBACKS         operationCallbacks;

    //
    // Get a FactoryCircuitInit structure.
    //
    factoryInit = AcxFactoryCircuitInitAllocate(Device);

    //
    // Add factory identifiers.
    //
    AcxFactoryCircuitInitSetComponentId(factoryInit, &SDCAXU_FACTORY_GUID);
    AcxFactoryCircuitInitAssignCategories(factoryInit, &SDCAXU_FACTORY_CATEGORY, 1);
    AcxFactoryCircuitInitAssignName(factoryInit, &s_FactoryName);

    //
    // Assign the circuit's operation-callbacks.
    //
    ACX_FACTORY_CIRCUIT_OPERATION_CALLBACKS_INIT(&operationCallbacks);
    operationCallbacks.EvtAcxFactoryCircuitCreateCircuitDevice = SdcaXu_EvtAcxFactoryCircuitCreateCircuitDevice;
    operationCallbacks.EvtAcxFactoryCircuitCreateCircuit = SdcaXu_EvtAcxFactoryCircuitCreateCircuit;
    AcxFactoryCircuitInitSetOperationCallbacks(factoryInit, &operationCallbacks);

    //
    // Create the factory circuit.
    //
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, SDCAXU_FACTORYCIRCUIT_CONTEXT);
    attributes.ParentObject = Device;
    status = AcxFactoryCircuitCreate(Device, &attributes, &factoryInit, &factory);


Требования к ACX

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

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

Требования

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

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