AcxFactoryCircuitCreate-Funktion (acxcircuit.h)
Die AcxFactoryCircuitCreate-Funktion wird verwendet, um eine ACXFACTORYCIRCUIT zu erstellen.
Syntax
NTSTATUS AcxFactoryCircuitCreate(
WDFDEVICE Device,
PWDF_OBJECT_ATTRIBUTES Attributes,
PACXFACTORYCIRCUIT_INIT *Config,
ACXFACTORYCIRCUIT *Factory
);
Parameter
Device
Ein WDFDEVICE-Objekt (beschrieben in Zusammenfassung von Framework-Objekten), das dem Schaltkreis zugeordnet wird.
Attributes
Zusätzliche Attribute, die mithilfe einer WDF_OBJECT_ATTRIBUTES definiert werden, die zum Festlegen der Werte der verschiedenen Objekte verwendet werden: Bereinigen und Zerstören von Rückrufen, Kontexttyp und Angeben des übergeordneten WDF-Objekts.
Config
Die ACXFACTORYCIRCUIT_INIT Struktur, die die Initialisierung des Schaltkreises definiert. ACXFACTORYCIRCUIT_INIT ist ein undurchsichtiges Objekt, das für die Initialisierung von Schaltkreisen verwendet wird. Verwenden Sie AcxFactoryCircuitInitAllocate, um die ACXFACTORYCIRCUIT_INIT Struktur zu initialisieren.
Factory
Ein Zeiger auf eine Position, die ein Handle zum neuen ACXFACTORYCIRCUIT-Objekt empfängt. Weitere Informationen zu ACX-Objekten finden Sie unter Summary of ACX Objects.
Rückgabewert
Gibt STATUS_SUCCESS
zurück, wenn der Anruf erfolgreich war. Andernfalls wird ein entsprechender Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Verwenden von NTSTATUS-Werten.
Bemerkungen
AcXFACTORYCIRCUIT wird vom ACX-Framework für "on-demand" ACXCIRCUITs verwendet. ACX fordert den ACXFACTORYCIRCUIT auf, einen neuen Schaltkreis zu erstellen, wenn ein Endpunkt einen benötigt.
Der ACXFACTORYCIRCUIT wird in einem Multi-Circuit-Endpunkt verwendet. Ein von einem ACXFACTORYCIRCUIT erstellter Schaltkreis kann nicht der "Kern"-Schaltkreis für den Endpunkt sein, d. h. der Schaltkreis, der die Endpunktidentität angibt.
Ein ACXFACTORYCIRCUIT verfügt über eine dedizierte WDF-Warteschlange. Weitere Informationen zu WDF-Warteschlangen finden Sie unter Framework Queue Objects.
Beispiel
Die Beispielverwendung wird unten gezeigt.
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);
ACX-Anforderungen
Mindestens ACX-Version: 1.0
Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.
Anforderungen
Anforderung | Wert |
---|---|
Header- | acxcircuit.h |
IRQL- | PASSIVE_LEVEL |