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_ITEM_TYPE 枚举,描述 ACX 项类型是此请求的目标。

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_ITEM_TYPE 枚举,描述 ACX 项类型是此请求的目标。

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_ITEM_TYPE 枚举,描述 ACX 项类型是此请求的目标。

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 版本概述

要求

要求 价值
标头 acxrequest.h

另请参阅