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(¶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.
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 |