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 |