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 框架用于“按需”ACXCIRCUIT。 当终结点需要线路时,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 版本概述

要求

要求
Header acxcircuit.h
IRQL PASSIVE_LEVEL

另请参阅