AcxFactoryCircuitCreate 関数 (acxcircuit.h)

AcxFactoryCircuitCreate 関数は、ACXFACTORYCIRCUIT を作成するために使用されます。

構文

NTSTATUS AcxFactoryCircuitCreate(
  WDFDEVICE               Device,
  PWDF_OBJECT_ATTRIBUTES  Attributes,
  PACXFACTORYCIRCUIT_INIT *Config,
  ACXFACTORYCIRCUIT       *Factory
);

パラメーター

Device

回線に関連付けられる WDFDEVICE オブジェクト ( 「フレームワーク オブジェクトの概要」を参照)。

Attributes

さまざまなオブジェクトの値を設定するために使用される WDF_OBJECT_ATTRIBUTES を使用して定義された追加の属性: コールバックのクリーンアップと破棄、コンテキストの種類、および WDF 親オブジェクトの指定。

Config

回線ファクトリの初期化を定義するACXFACTORYCIRCUIT_INIT構造体。 ACXFACTORYCIRCUIT_INITは、回線ファクトリの初期化に使用される不透明なオブジェクトです。 AcxFactoryCircuitInitAllocate を使用して、ACXFACTORYCIRCUIT_INIT構造体を初期化します。

Factory

新しい ACXFACTORYCIRCUIT オブジェクトへのハンドルを受け取る場所へのポインター。 ACX オブジェクトの詳細については、「 ACX オブジェクトの概要」を参照してください。

戻り値

STATUS_SUCCESS呼び出しが成功した場合は を返します。 それ以外の場合は、適切なエラー コードを返します。 詳細については、「 NTSTATUS 値の使用」を参照してください。

注釈

ACXFACTORYCIRCUIT は、ACX フレームワークによって "オンデマンド" ACXCIRCUIT に使用されます。 ACX は、エンドポイントに必要な場合に新しい回線を作成するように ACXFACTORYCIRCUIT に要求します。

ACXFACTORYCIRCUIT は、マルチ回線エンドポイントで使用されます。 ACXFACTORYCIRCUIT によって作成された回線は、エンドポイントの "コア" 回線 (エンドポイント ID を提供する回線) にすることはできません。

ACXFACTORYCIRCUIT には、専用の WDF キューがあります。 WDF キューの詳細については、「 フレームワーク キュー オブジェクト」を参照してください。

使用例を次に示します。

    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 の要件

最小 ACX バージョン: 1.0

ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。

要件

要件
Header acxcircuit.h
IRQL PASSIVE_LEVEL

こちらもご覧ください