次の方法で共有


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は、回路ファクトリの初期化に使用される不透明なオブジェクトです。 ACXFACTORYCIRCUIT_INIT構造体 初期化するには、AcxFactoryCircuitInitAllocate を使用します。

Factory

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

戻り値

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

備考

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

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

ACXFACTORYCIRCUIT には、専用の WDF キューがあります。 WDF キューの詳細については、「Framework Queue Objects」を参照してください。

使用例を次に示します。

    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 バージョンの概要 参照してください。

必要条件

要件 価値
ヘッダー acxcircuit.h
IRQL PASSIVE_LEVEL

関連項目

  • acxcircuit.h ヘッダー する