ACX_REQUEST_PARAMETERS 구조체(acxrequest.h)
ACX_REQUEST_PARAMETERS 구조체는 I/O ACX 요청과 연결된 매개 변수를 받습니다.
다음 매개 변수는 호출되는 서비스(예: 속성, 메서드 또는 이벤트)를 기반으로 합니다. 드라이버는 ACX_ITEM_TYPE 따라 사용할 집합을 결정할 수 있습니다.
이 구조체의 세 가지 용도는 기존 KS(커널 스트리밍) 형식으로의 통신을 용이하게 합니다. KS에 대한 자세한 내용은 KS 속성, 이벤트 및 메서드를 참조하세요.
각 형식의 특정 정보는 다음 topics 참조하세요.
또한 다음 topics 유용할 수 있습니다.
오디오 드라이버 속성KSIDENTIFIER 구조체 설정(ks.h)
구문
typedef struct _ACX_REQUEST_PARAMETERS {
USHORT Size;
UCHAR MajorFunction;
UCHAR MinorFunction;
ACX_REQUEST_TYPE Type;
union {
struct {
GUID Set;
ULONG Id;
ACX_PROPERTY_VERB Verb;
ACX_ITEM_TYPE ItemType;
ULONG ItemId;
PVOID Control;
ULONG ControlCb;
PVOID Value;
ULONG ValueCb;
} Property;
struct {
GUID Set;
ULONG Id;
ACX_METHOD_VERB Verb;
ACX_ITEM_TYPE ItemType;
ULONG ItemId;
PVOID Args;
ULONG ArgsCb;
PVOID Result;
ULONG ResultCb;
} Method;
struct {
GUID Set;
ULONG Id;
ACX_EVENT_VERB Verb;
ACX_ITEM_TYPE ItemType;
ULONG ItemId;
PVOID Data;
ULONG DataCb;
ACXEVENTDATA EventData;
} Event;
struct {
PVOID Control;
ULONG ControlCb;
} Create;
} Parameters;
} ACX_REQUEST_PARAMETERS, *PACX_REQUEST_PARAMETERS;
멤버
Size
구조체의 크기(바이트)입니다.
MajorFunction
이 요청에 사용되는 WDF IRP 주 함수(예: IRP_MJ_DEVICE_CONTROL). WDF IRP에 대한 자세한 내용은 IRP 주요 함수 코드를 참조하세요.
MinorFunction
이 요청에 사용되는 WDF IRP 부 함수입니다. 부 함수에 대한 자세한 내용은 주 IRP와 연결된 를 참조하세요(예: 플러그 앤 플레이 부 IRP, 전원 관리 부 IRP 및 WMI 부 IRP).
Type
ACX_REQUEST_TYPE 열거형은 요청에서 보낼 항목의 유형을 설명합니다. 지정된 형식에 따라 아래에 나열된 매개 변수의 하위 집합이 사용됩니다.
Parameters
Parameters.Property
KS 속성에 대한 매개 변수는 ACX 요청에 사용됩니다. 자세한 내용은 KSPROPERTY 구조를 참조하세요.
Parameters.Property.Set
커널 스트리밍 속성 집합을 식별하는 GUID를 지정합니다.
Parameters.Property.Id
속성 집합의 멤버를 지정합니다.
Parameters.Property.Verb
속성 동사를 설명하는 ACX_PROPERTY_VERB 열거형입니다.
Parameters.Property.ItemType
이 요청의 대상이 되는 ACX 항목 형식을 설명하는 ACX_ITEM_TYPE 열거형입니다.
Parameters.Property.ItemId
항목 ID입니다.
Parameters.Property.Control
ACX 요청에 대한 추가 입력 매개 변수로 사용되는 시스템 서비스 매개 변수에 대한 포인터입니다.
Parameters.Property.ControlCb
Property.Control 버퍼의 바이트(크기)입니다.
Parameters.Property.Value
속성 값에 대한 포인터입니다.
Parameters.Property.ValueCb
Property.Value 버퍼의 바이트(크기)입니다.
Parameters.Method
KS 메서드 요청에 사용되는 매개 변수입니다.
Parameters.Method.Set
커널 스트리밍 메서드 집합을 식별하는 GUID를 지정합니다.
Parameters.Method.Id
메서드 집합의 멤버를 지정합니다.
Parameters.Method.Verb
전송되는 항목을 설명하는 ACX_METHOD_VERB 열거형입니다.
Parameters.Method.ItemType
이 요청의 대상이 되는 ACX 항목 형식을 설명하는 ACX_ITEM_TYPE 열거형입니다.
Parameters.Method.ItemId
전송되는 항목의 항목 ID입니다.
Parameters.Method.Args
메서드의 선택적 인수에 대한 포인터입니다.
Parameters.Method.ArgsCb
메서드에 대한 선택적 인수의 바이트(크기)입니다.
Parameters.Method.Result
메서드의 결과에 대한 포인터입니다.
Parameters.Method.ResultCb
Method.Result 버퍼의 바이트(크기)입니다.
Parameters.Event
ACX 요청에 사용되는 KS 이벤트에 사용되는 매개 변수입니다. 자세한 내용은 KSEVENT 구조를 참조하세요.
Parameters.Event.Set
커널 스트리밍 이벤트 집합을 식별하는 GUID를 지정합니다.
Parameters.Event.Id
이벤트 집합의 멤버를 지정합니다.
Parameters.Event.Verb
전송되는 항목을 설명하는 ACX_EVENT_VERB 열거형입니다.
Parameters.Event.ItemType
이 요청의 대상이 되는 ACX 항목 형식을 설명하는 ACX_ITEM_TYPE 열거형입니다.
Parameters.Event.ItemId
이벤트 항목 ID입니다.
Parameters.Event.Data
이벤트 데이터에 대한 포인터입니다.
Parameters.Event.DataCb
Event.Data 버퍼의 바이트(크기)입니다.
Parameters.Event.EventData
ACXEVENTDATA 개체입니다. ACX 개체에 대한 자세한 내용은 ACX 개체 요약을 참조하세요.
Parameters.Create
ACX 요청에 사용되는 만들기 매개 변수를 포함하는 구조체입니다.
Parameters.Create.Control
ACX 요청에 대한 추가 입력 매개 변수로 사용되는 시스템 서비스 매개 변수에 대한 포인터입니다.
Parameters.Create.ControlCb
Create.Control 버퍼의 바이트(크기)입니다.
설명
드라이버는 I/O ACX 요청을 사용하는 경우에만 ACX_REQUEST_PARAMETERS 사용해야 합니다. 드라이버는 WDF 요청 DDI를 사용하여 다른 유형의 요청을 처리해야 합니다.
예제
예제 사용법은 다음과 같습니다.
ACX_REQUEST_PARAMETERS params;
PAGED_CODE();
//
// Get request parameters.
//
ACX_REQUEST_PARAMETERS_INIT(¶ms);
AcxRequestGetParameters(Request, ¶ms);
ASSERT(params.Type == AcxRequestTypeMethod);
ASSERT(params.Parameters.Method.Verb == AcxMethodVerbSend);
ASSERT(params.Parameters.Method.ArgsCb >= argsCb);
args = (PAPX_CIRCUIT_FACTORY_ADD_CIRCUIT)params.Parameters.Method.Args;
argsCb = params.Parameters.Method.ArgsCb; // use real value.
ACX 요구 사항
최소 ACX 버전: 1.0
ACX 버전에 대한 자세한 내용은 ACX 버전 개요를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | acxrequest.h |