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 der Frameworkobjekte), das der Verbindung zugeordnet wird.

Attributes

Zusätzliche Attribute, die mithilfe einer WDF_OBJECT_ATTRIBUTES definiert werden, die zum Festlegen der Werte des verschiedenen Objekts verwendet werden: Bereinigen und Zerstören von Rückrufen, Kontexttyp und angeben des übergeordneten WDF-Objekts.

Config

Die ACXFACTORYCIRCUIT_INIT Struktur, die die Initialisierung der Circuit Factory definiert. ACXFACTORYCIRCUIT_INIT ist ein undurchsichtiges Objekt, das für die Initialisierung der Verbindungsfactory verwendet wird. Verwenden Sie AcxFactoryCircuitInitAllocate , um die ACXFACTORYCIRCUIT_INIT-Struktur zu initialisieren.

Factory

Ein Zeiger auf eine Position, die ein Handle auf das neue ACXFACTORYCIRCUIT-Objekt empfängt. Weitere Informationen zu ACX-Objekten finden Sie unter Zusammenfassung von ACX-Objekten.

Rückgabewert

Gibt zurück STATUS_SUCCESS , wenn der Aufruf erfolgreich war. Andernfalls wird ein geeigneter Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Verwenden von NTSTATUS-Werten.

Hinweise

Der ACXFACTORYCIRCUIT wird vom ACX-Framework für "on-demand" ACXCIRCUITs verwendet. ACX fordert den ACXFACTORYCIRCUIT auf, eine neue Verbindung zu erstellen, wenn ein Endpunkt eine erfordert.

Der ACXFACTORYCIRCUIT wird in einem Endpunkt mit mehreren Leitungen verwendet. Eine von einer ACXFACTORYCIRCUIT erstellte Verbindung kann nicht die "Kernschaltung" für den Endpunkt sein, d. h. die Verbindung, die die Endpunktidentität bereitstellt.

Ein ACXFACTORYCIRCUIT verfügt über eine dedizierte WDF-Warteschlange. Weitere Informationen zu WDF-Warteschlangen finden Sie unter Framework-Warteschlangenobjekte.

Beispiel

Das Beispiel für die Verwendung ist unten dargestellt.

    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

ACX-Mindestversion: 1.0

Weitere Informationen zu ACX-Versionen finden Sie unter ACX-Versionsübersicht.

Anforderungen

Anforderung Wert
Header acxcircuit.h
IRQL PASSIVE_LEVEL

Weitere Informationen