ACX_REQUEST_PARAMETERS 结构 (acxrequest.h)
ACX_REQUEST_PARAMETERS 结构接收与 I/O ACX 请求关联的参数。
以下参数基于正在调用的服务,例如属性、方法或事件。 驱动程序可以根据ACX_ITEM_TYPE确定要使用的集。
此结构的三个用途有助于将通信返回到现有内核流式处理 (KS) 类型。 有关 KS 的详细信息 ,请参阅 KS 属性、事件和方法。
有关每种类型的具体信息,请参阅以下主题。
此外,以下主题可能很有用。
音频驱动程序属性设置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 版本概述。
要求
要求 | 值 |
---|---|
Header | acxrequest.h |