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 Summary of Framework Objects) 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 spécification de 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 d’usine 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 de retour
Retourne STATUS_SUCCESS
si l’appel a réussi. Sinon, elle retourne un code d’erreur approprié. Pour plus d’informations, consultez Using NTSTATUS Values.
Remarques
L’ACXFACTORYCIRCUIT est utilisé par l’infrastructure ACX pour les ACXCIRCUITs « à la demande ». ACX demande à ACXFACTORYCIRCUIT de créer un nouveau circuit lorsqu’un point de terminaison en nécessite un.
L’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 dispose d’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 pour ACX
version minimale d’ACX : 1.0
Pour plus d’informations sur les versions ACX, consultez vue d’ensemble de la version ACX.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | acxcircuit.h |
IRQL | PASSIVE_LEVEL |