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电源管理次要 IRPWMI 次要 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(&params);
    AcxRequestGetParameters(Request, &params);

    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

另请参阅