estructura ACX_REQUEST_PARAMETERS (acxrequest.h)

La estructura ACX_REQUEST_PARAMETERS recibe parámetros asociados a una solicitud ACX de E/S.

Los parámetros siguientes se basan en el servicio que se invoca, como una propiedad, un método o un evento. Los controladores pueden determinar qué conjunto se va a usar en función del ACX_ITEM_TYPE.

Los tres usos de esta estructura facilitan las comunicaciones a los tipos de streaming de kernel (KS) existentes. Para obtener más información sobre KS , vea Propiedades, eventos y métodos de KS.

Para obtener información específica de cada uno de los tipos, vea los temas siguientes.

Además, los temas siguientes pueden ser útiles.

Propiedad Controladores de audio Establece laestructura KSIDENTIFIER (ks.h)

Sintaxis

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;

Miembros

Size

El tamaño de la estructura en bytes.

MajorFunction

Función principal de IRP de WDF que se usa para esta solicitud, por ejemplo, IRP_MJ_DEVICE_CONTROL. Para obtener más información sobre WDF IRP, consulte Códigos de función principales de IRP.

MinorFunction

Función secundaria irP de WDF que se usa para esta solicitud. Para obtener más información sobre la función secundaria, consulte el asociado a irP principal, por ejemplo, Plug and Play IRP secundarias, IRP secundarias de administración de energía e IRP secundarias de WMI.

Type

La enumeración ACX_REQUEST_TYPE describe el tipo de elementos que se enviarán en la solicitud. Según el tipo especificado, se usará un subconjunto de los parámetros que se enumeran a continuación.

Parameters

Parameters.Property

Los parámetros de las propiedades de KS se usan para la solicitud ACX. Para obtener más información, vea Estructura KSPROPERTY.

Parameters.Property.Set

Especifica un GUID que identifica un conjunto de propiedades de streaming de kernel.

Parameters.Property.Id

Especifica el miembro del conjunto de propiedades.

Parameters.Property.Verb

Enumeración ACX_PROPERTY_VERB que describe el verbo de propiedad.

Parameters.Property.ItemType

Enumeración ACX_ITEM_TYPE que describe el tipo de elemento ACX que es el destino de esta solicitud.

Parameters.Property.ItemId

Identificador del elemento.

Parameters.Property.Control

Puntero a los parámetros de servicio del sistema que se usan como parámetros de entrada adicionales para la solicitud ACX.

Parameters.Property.ControlCb

Recuento en bytes (tamaño) del búfer Property.Control.

Parameters.Property.Value

Puntero al valor de la propiedad.

Parameters.Property.ValueCb

Recuento en bytes (tamaño) del búfer Property.Value.

Parameters.Method

Parámetros usados para una solicitud de métodos KS .

Parameters.Method.Set

Especifica un GUID que identifica un conjunto de métodos de streaming de kernel.

Parameters.Method.Id

Especifica el miembro del conjunto de métodos.

Parameters.Method.Verb

Enumeración ACX_METHOD_VERB que describe el elemento que se envía.

Parameters.Method.ItemType

Enumeración ACX_ITEM_TYPE que describe el tipo de elemento ACX que es el destino de esta solicitud.

Parameters.Method.ItemId

Identificador de elemento del elemento que se envía.

Parameters.Method.Args

Puntero a argumentos opcionales para el método .

Parameters.Method.ArgsCb

Recuento en bytes (tamaño) de los argumentos opcionales del método .

Parameters.Method.Result

Puntero al resultado del método .

Parameters.Method.ResultCb

Recuento en bytes (tamaño) del búfer Method.Result.

Parameters.Event

Parámetros usados para los eventos KS que se usan para la solicitud ACX. Para obtener más información, vea Estructura KSEVENT.

Parameters.Event.Set

Especifica un GUID que identifica un conjunto de eventos de streaming de kernel.

Parameters.Event.Id

Especifica el miembro del conjunto de eventos.

Parameters.Event.Verb

Enumeración ACX_EVENT_VERB que describe el elemento que se envía.

Parameters.Event.ItemType

Enumeración ACX_ITEM_TYPE que describe el tipo de elemento ACX que es el destino de esta solicitud.

Parameters.Event.ItemId

Identificador del elemento de evento.

Parameters.Event.Data

Puntero a los datos del evento.

Parameters.Event.DataCb

Recuento en bytes (tamaño) del búfer Event.Data.

Parameters.Event.EventData

Objeto ACXEVENTDATA. Para obtener más información sobre los objetos ACX, vea Resumen de objetos ACX.

Parameters.Create

Estructura que contiene los parámetros de creación que se usan para la solicitud ACX.

Parameters.Create.Control

Puntero a los parámetros de servicio del sistema que se usan como parámetros de entrada adicionales para la solicitud ACX.

Parameters.Create.ControlCb

Recuento en bytes (tamaño) del búfer Create.Control.

Comentarios

El controlador debe usar ACX_REQUEST_PARAMETERS solo cuando se trabaja con solicitudes de ACX de E/S. El controlador debe usar los DDIs de solicitud de WDF para controlar otro tipo de solicitudes.

Ejemplo

A continuación se muestra un ejemplo de uso.

    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.

Requisitos de ACX

Versión mínima de ACX: 1.0

Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.

Requisitos

Requisito Valor
Header acxrequest.h

Consulte también