Función AcxFactoryCircuitCreate (acxcircuit.h)
La función AcxFactoryCircuitCreate se usa para crear un ACXFACTORYCIRCUIT.
Sintaxis
NTSTATUS AcxFactoryCircuitCreate(
WDFDEVICE Device,
PWDF_OBJECT_ATTRIBUTES Attributes,
PACXFACTORYCIRCUIT_INIT *Config,
ACXFACTORYCIRCUIT *Factory
);
Parámetros
Device
Objeto WDFDEVICE (descrito en Resumen de objetos de marco) que se asociará al circuito.
Attributes
Atributos adicionales definidos mediante un WDF_OBJECT_ATTRIBUTES que se usan para establecer los distintos valores del objeto: limpieza y destrucción de devoluciones de llamada, tipo de contexto y para especificar su objeto primario WDF.
Config
Estructura ACXFACTORYCIRCUIT_INIT que define la inicialización del generador de circuitos. ACXFACTORYCIRCUIT_INIT es un objeto opaco que se usa para la inicialización de fábrica de circuitos. Use AcxFactoryCircuitInitAllocate para inicializar la estructura de ACXFACTORYCIRCUIT_INIT.
Factory
Puntero a una ubicación que recibe un identificador para el nuevo objeto ACXFACTORYCIRCUIT. Para obtener más información sobre los objetos ACX, vea Resumen de objetos ACX.
Valor devuelto
Devuelve STATUS_SUCCESS
si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. Para obtener más información, vea Uso de valores NTSTATUS.
Comentarios
AcXFACTORYCIRCUIT es utilizado por el marco ACX para ACX "a petición" ACXCIRCUITs. ACX pedirá al ACXFACTORYCIRCUIT que cree un circuito cuando un punto de conexión requiera uno.
ACXFACTORYCIRCUIT se usa en un punto de conexión de varios circuitos. Un circuito creado por un ACXFACTORYCIRCUIT no puede ser el circuito "núcleo" para el punto de conexión, es decir, el circuito que proporciona la identidad del punto de conexión.
Un ACXFACTORYCIRCUIT tiene una cola WDF dedicada. Para obtener más información sobre las colas de WDF, vea Objetos de cola de marco.
Ejemplo
A continuación se muestra un ejemplo de uso.
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);
Requisitos de ACX
Versión mínima de ACX: 1.0
Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.
Requisitos
Requisito | Valor |
---|---|
Header | acxcircuit.h |
IRQL | PASSIVE_LEVEL |