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 버전 개요를 참조하세요.

요구 사항

요구 사항
헤더 acxcircuit.h
IRQL PASSIVE_LEVEL

추가 정보