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 |