Partager via


AcxFactoryCircuitCreate, fonction (acxcircuit.h)

La fonction AcxFactoryCircuitCreate est utilisée pour créer un ACXFACTORYCIRCUIT.

Syntaxe

NTSTATUS AcxFactoryCircuitCreate(
  WDFDEVICE               Device,
  PWDF_OBJECT_ATTRIBUTES  Attributes,
  PACXFACTORYCIRCUIT_INIT *Config,
  ACXFACTORYCIRCUIT       *Factory
);

Paramètres

Device

Objet WDFDEVICE (décrit dans Résumé des objets framework) qui sera associé au circuit.

Attributes

Attributs supplémentaires définis à l’aide d’un WDF_OBJECT_ATTRIBUTES qui sont utilisés pour définir les valeurs des différents objets : nettoyage et destruction des rappels, type de contexte, et pour spécifier son objet parent WDF.

Config

Structure ACXFACTORYCIRCUIT_INIT qui définit l’initialisation de la fabrique de circuit. ACXFACTORYCIRCUIT_INIT est un objet opaque utilisé pour l’initialisation de la fabrique de circuit. Utilisez AcxFactoryCircuitInitAllocate pour initialiser la structure ACXFACTORYCIRCUIT_INIT.

Factory

Pointeur vers un emplacement qui reçoit un handle vers le nouvel objet ACXFACTORYCIRCUIT. Pour plus d’informations sur les objets ACX, consultez Résumé des objets ACX.

Valeur retournée

Retourne STATUS_SUCCESS si l’appel a réussi. Sinon, il retourne un code d’erreur approprié. Pour plus d’informations, consultez Utilisation de valeurs NTSTATUS.

Remarques

ACXFACTORYCIRCUIT est utilisé par l’infrastructure ACX pour les ACXCIRCUITs « à la demande ». ACX demande à ACXFACTORYCIRCUIT de créer un circuit lorsqu’un point de terminaison en nécessite un.

ACXFACTORYCIRCUIT est utilisé dans un point de terminaison multi-circuit. Un circuit créé par un ACXFACTORYCIRCUIT ne peut pas être le circuit « core » du point de terminaison, c’est-à-dire le circuit qui donne l’identité du point de terminaison.

Un ACXFACTORYCIRCUIT a une file d’attente WDF dédiée. Pour plus d’informations sur les files d’attente WDF, consultez Framework Queue Objects.

Exemple

L’exemple d’utilisation est illustré ci-dessous.

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


Configuration requise d’ACX

Version minimale d’ACX : 1.0

Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.

Configuration requise

Condition requise Valeur
En-tête acxcircuit.h
IRQL PASSIVE_LEVEL

Voir aussi