Share via


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

Consulte también