AcxFactoryCircuitInitAssignMethods 함수(acxcircuit.h)
AcxFactoryCircuitInitAssignMethods 함수는 ACXFACTORYCIRCUIT에 대해 하나 이상의 ACX 메서드를 할당합니다.
구문
NTSTATUS AcxFactoryCircuitInitAssignMethods(
PACXFACTORYCIRCUIT_INIT FactoryInit,
PACX_METHOD_ITEM Methods,
ULONG MethodsCount
);
매개 변수
FactoryInit
회로 팩터리 초기화에 사용되는 ACXFACTORYCIRCUIT_INIT 구조체입니다. ACX 회로 팩터리 초기화 정보를 저장하고 팩터리를 WDF 디바이스와 연결하는 데 사용되는 불투명 구조입니다. AcxFactoryCircuitInitAllocate 함수를 사용하여 ACXFACTORYCIRCUIT_INIT 구조를 초기화합니다.
Methods
회로 초기화에 사용할 메서드 집합을 정의하는 ACX_METHOD_ITEM 구조체입니다.
MethodsCount
회로에 할당될 메서드의 수입니다. 이는 하나의 기반 개수입니다.
반환 값
호출이 성공하면 를 반환합니다 STATUS_SUCCESS
. 그렇지 않으면 적절한 오류 코드를 반환합니다. 자세한 내용은 NTSTATUS 값 사용을 참조하세요.
설명
드라이버는 드라이버 소유 메서드만 추가해야 합니다.
예제
사용 예제는 다음과 같습니다.
typedef enum {
KSMETHOD_APXCIRCUITFACTORY_ADD_CIRCUIT = 1,
KSMETHOD_APXCIRCUITFACTORY_REMOVE_CIRCUIT = 2,
} KSMETHOD_APXCIRCUITFACTORY;
static ACX_METHOD_ITEM s_FactoryCircuitMethods[] =
{
{
&KSMETHODSETID_ApxCircuitFactory,
KSMETHOD_APXCIRCUITFACTORY_ADD_CIRCUIT,
ACX_METHOD_ITEM_FLAG_SEND,
&C_EvtAddCircuitCallback,
NULL, // Reserved
sizeof(APX_CIRCUIT_FACTORY_ADD_CIRCUIT), // ControlCb
0, // ValueCb
},
/*
{
&KSMETHODSETID_ApxCircuitFactory,
KSMETHOD_APXCIRCUITFACTORY_REMOVE_CIRCUIT,
ACX_METHOD_ITEM_FLAG_SEND,
&EvtRemoveCircuitCallback,
NULL, // Reserved
sizeof(APX_CIRCUIT_FACTORY_REMOVE_CIRCUIT), // ControlCb
0, // ValueCb
},
*/
};
//
// Get a FactoryCircuitInit structure.
//
factoryInit = AcxFactoryCircuitInitAllocate(Device);
//
// Add factory identifiers.
//
AcxFactoryCircuitInitSetComponentId(factoryInit, &KSCATEGORY_APXCIRCUITFACTORY);
AcxFactoryCircuitInitAssignCategories(factoryInit, &KSCATEGORY_APXCIRCUITFACTORY, 1);
AcxFactoryCircuitInitAssignName(factoryInit, &s_FactoryName);
//
// Add properties, events and methods.
//
status = AcxFactoryCircuitInitAssignMethods(factoryInit,
s_FactoryCircuitMethods,
s_FactoryCircuitMethodsCount);
ACX 요구 사항
최소 ACX 버전: 1.0
ACX 버전에 대한 자세한 내용은 ACX 버전 개요를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | acxcircuit.h |
IRQL | PASSIVE_LEVEL |