Condividi tramite


Funzione AcxFactoryCircuitInitAssignMethods (acxcircuit.h)

La funzione AcxFactoryCircuitInitAssignMethods assegna uno o più metodi ACX per ACXFACTORYCIRCUIT.

Sintassi

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

Parametri

FactoryInit

Struttura ACXFACTORYCIRCUIT_INIT utilizzata per l'inizializzazione della factory del circuito. Si tratta di una struttura opaca usata per archiviare le informazioni di inizializzazione della factory del circuito ACX e associare la factory a un dispositivo WDF. Utilizzare la funzione AcxFactoryCircuitInitAllocate per inizializzare la struttura ACXFACTORYCIRCUIT_INIT.

Methods

Struttura ACX_METHOD_ITEM che definisce un set di metodi che verranno utilizzati per l'inizializzazione del circuito.

MethodsCount

Numero di metodi che verranno assegnati al circuito. Si tratta di un conteggio basato su un solo.

Valore restituito

Restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. In caso contrario, restituisce un codice di errore appropriato. Per altre informazioni, vedere Uso di valori NTSTATUS.

Osservazioni

I driver devono aggiungere solo metodi di proprietà del driver.

Esempio

Di seguito è riportato un esempio di utilizzo.

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);

Requisiti ACX

versione minima di ACX: 1.0

Per altre informazioni sulle versioni di ACX, vedere panoramica della versione ACX.

Fabbisogno

Requisito Valore
intestazione acxcircuit.h
IRQL PASSIVE_LEVEL

Vedere anche