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 usata per l'inizializzazione della factory del circuito. Si tratta di una struttura opaca usata per archiviare le informazioni di inizializzazione della fabbrica di circuiti ACX e associare la factory a un dispositivo WDF. Usare la funzione AcxFactoryCircuitInitAllocate per inizializzare la struttura di ACXFACTORYCIRCUIT_INIT.

Methods

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

MethodsCount

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

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 dei valori NTSTATUS.

Commenti

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

Esempio

Di seguito è riportato l'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 ACX, vedere Panoramica della versione di ACX.

Requisiti

Requisito Valore
Intestazione acxcircuit.h
IRQL PASSIVE_LEVEL

Vedi anche