Freigeben über


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

Siehe auch