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


Функция 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 для ACX по запросу ACXCIRCUITs. ACX попросит ACXFACTORYCIRCUIT создать новый канал, когда для конечной точки требуется одна.

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

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

См. также