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 值。
言论
ACX FRAMEWORK 用于“按需”ACXCIRCUIT 的 ACXFACTORYCIRCUIT。 ACX 将要求 ACXFACTORYCIRCUIT 在终结点需要一条线路时创建新线路。
ACXFACTORYCIRCUIT 用于多线路终结点。 ACXFACTORYCIRCUIT 创建的线路不能是终结点的“核心”线路,即提供终结点标识的线路。
ACXFACTORYCIRCUIT 具有专用 WDF 队列。 有关 WDF 队列的详细信息,请参阅 框架队列对象。
AcxFactoryCircuit 只能在 FDO(不在 RAW PDO 上)上创建。 ACXFACTORYCIRCUIT 对象使用其 FDO 的静态子列表,该列表在 RAW PDO 上不可用。 有关其他信息,请参阅 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 |