Compartir a través de


Función AcxFactoryCircuitInitAssignMethods (acxcircuit.h)

La función AcxFactoryCircuitInitAssignMethods asigna uno o varios métodos ACX para ACXFACTORYCIRCUIT.

Sintaxis

NTSTATUS AcxFactoryCircuitInitAssignMethods(
  PACXFACTORYCIRCUIT_INIT FactoryInit,
  PACX_METHOD_ITEM        Methods,
  ULONG                   MethodsCount
);

Parámetros

FactoryInit

Estructura ACXFACTORYCIRCUIT_INIT que se usa para la inicialización de fábrica de circuitos. Se trata de una estructura opaca que se usa para almacenar la información de inicialización de fábrica del circuito ACX y asociar la fábrica a un dispositivo WDF. Use el función AcxFactoryCircuitInitAllocate para inicializar la estructura de ACXFACTORYCIRCUIT_INIT.

Methods

Estructura ACX_METHOD_ITEM que define un conjunto de métodos que se usarán para la inicialización del circuito.

MethodsCount

Número de métodos que se asignarán al circuito. Se trata de un recuento basado.

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 Using NTSTATUS Values.

Observaciones

Los controladores solo deben agregar métodos propiedad del controlador.

Ejemplo

A continuación se muestra el uso de ejemplo.

typedef enum {
    KSMETHOD_APXCIRCUITFACTORY_ADD_CIRCUIT        = 1,
    KSMETHOD_APXCIRCUITFACTORY_REMOVE_CIRCUIT     = 2,
} KSMETHOD_APXCIRCUITFACTORY;

static ACX_METHOD_ITEM s_FactoryCircuitMethods[] =
{
    {
        &KSMETHODSETID_ApxCircuitFactory,
        KSMETHOD_APXCIRCUITFACTORY_ADD_CIRCUIT,
        ACX_METHOD_ITEM_FLAG_SEND,
        &C_EvtAddCircuitCallback,
        NULL,                                       // Reserved
        sizeof(APX_CIRCUIT_FACTORY_ADD_CIRCUIT),    // ControlCb
        0,                                          // ValueCb
    },
    /*
    {
        &KSMETHODSETID_ApxCircuitFactory,
        KSMETHOD_APXCIRCUITFACTORY_REMOVE_CIRCUIT,
        ACX_METHOD_ITEM_FLAG_SEND,
        &EvtRemoveCircuitCallback,
        NULL,                                       // Reserved
        sizeof(APX_CIRCUIT_FACTORY_REMOVE_CIRCUIT), // ControlCb
        0,                                          // ValueCb
    },
    */
};
    //
    // Get a FactoryCircuitInit structure.
    //
    factoryInit = AcxFactoryCircuitInitAllocate(Device);

    //
    // Add factory identifiers.
    //
    AcxFactoryCircuitInitSetComponentId(factoryInit, &KSCATEGORY_APXCIRCUITFACTORY);
    AcxFactoryCircuitInitAssignCategories(factoryInit, &KSCATEGORY_APXCIRCUITFACTORY, 1);
    AcxFactoryCircuitInitAssignName(factoryInit, &s_FactoryName);

    //
    // Add properties, events and methods.
    //
    status = AcxFactoryCircuitInitAssignMethods(factoryInit,
                                                s_FactoryCircuitMethods,
                                                s_FactoryCircuitMethodsCount);

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
encabezado de acxcircuit.h
irQL PASSIVE_LEVEL

Consulte también