estrutura ACX_REQUEST_PARAMETERS (acxrequest.h)
A estrutura ACX_REQUEST_PARAMETERS recebe parâmetros associados a uma solicitação ACX de E/S.
Os parâmetros a seguir são baseados no serviço que está sendo invocado, como uma propriedade, método ou evento. Os drivers podem determinar qual conjunto usar com base no ACX_ITEM_TYPE.
Os três usos dessa estrutura facilitam as comunicações de volta aos tipos de KS (streaming de kernel) existentes. Para obter mais informações sobre KS , consulte Propriedades, eventos e métodos do KS.
Para obter informações específicas de cada um dos tipos, consulte os tópicos a seguir.
Além disso, os tópicos a seguir podem ser úteis.
A propriedade Drivers de Áudio definea estrutura KSIDENTIFIER (ks.h)
Sintaxe
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;
Membros
Size
O tamanho da estrutura em bytes.
MajorFunction
A função principal do WDF IRP usada para essa solicitação, por exemplo, IRP_MJ_DEVICE_CONTROL. Para obter mais informações sobre o WDF IRP, consulte Códigos de função principais do IRP.
MinorFunction
A função secundária do WDF IRP usada para essa solicitação. Para obter mais informações sobre a Função Secundária, consulte o associado ao IRP principal, por exemplo, Plug and Play IRPs menores, IRPs secundários de gerenciamento de energia e IRPs menores WMI.
Type
A enumeração ACX_REQUEST_TYPE descreve o tipo de itens que serão enviados na solicitação. Dependendo do tipo especificado, um subconjunto dos parâmetros listados abaixo será usado.
Parameters
Parameters.Property
Parâmetros para propriedades KS estão sendo usados para a solicitação ACX. Para obter mais informações, consulte Estrutura KSPROPERTY.
Parameters.Property.Set
Especifica um GUID que identifica um conjunto de propriedades de streaming de kernel.
Parameters.Property.Id
Especifica o membro do conjunto de propriedades.
Parameters.Property.Verb
Uma enumeração ACX_PROPERTY_VERB que descreve o verbo da propriedade.
Parameters.Property.ItemType
Uma enumeração ACX_ITEM_TYPE que descreve o tipo de item ACX sendo o destino dessa solicitação.
Parameters.Property.ItemId
A ID do Item.
Parameters.Property.Control
Um ponteiro para parâmetros de serviço do sistema que são usados como parâmetros de entrada adicionais para a solicitação ACX.
Parameters.Property.ControlCb
A contagem em bytes (tamanho) do buffer Property.Control.
Parameters.Property.Value
Um ponteiro para o valor da propriedade.
Parameters.Property.ValueCb
A contagem em bytes (tamanho) do buffer Property.Value.
Parameters.Method
Parâmetros usados para uma solicitação de métodos KS .
Parameters.Method.Set
Especifica um GUID que identifica um conjunto de métodos de streaming de kernel.
Parameters.Method.Id
Especifica o membro do conjunto de métodos.
Parameters.Method.Verb
Uma enumeração ACX_METHOD_VERB que descreve o item que está sendo enviado.
Parameters.Method.ItemType
Uma enumeração ACX_ITEM_TYPE que descreve o tipo de item ACX sendo o destino dessa solicitação.
Parameters.Method.ItemId
A ID do item que está sendo enviado.
Parameters.Method.Args
Um ponteiro para argumentos opcionais para o método .
Parameters.Method.ArgsCb
A contagem em bytes (tamanho) dos argumentos opcionais para o método .
Parameters.Method.Result
Um ponteiro para o resultado do método .
Parameters.Method.ResultCb
A contagem em bytes (tamanho) do buffer Method.Result.
Parameters.Event
Parâmetros usados para eventos KS que estão sendo usados para a solicitação ACX. Para obter mais informações, consulte Estrutura KSEVENT.
Parameters.Event.Set
Especifica um GUID que identifica um conjunto de eventos de streaming de kernel.
Parameters.Event.Id
Especifica o membro do conjunto de eventos.
Parameters.Event.Verb
Uma enumeração ACX_EVENT_VERB que descreve o item que está sendo enviado.
Parameters.Event.ItemType
Uma enumeração ACX_ITEM_TYPE que descreve o tipo de item ACX sendo o destino dessa solicitação.
Parameters.Event.ItemId
A ID do item do evento.
Parameters.Event.Data
Um ponteiro para os dados do evento.
Parameters.Event.DataCb
A contagem em bytes (tamanho) do buffer Event.Data.
Parameters.Event.EventData
Um objeto ACXEVENTDATA. Para obter mais informações sobre objetos ACX, consulte Resumo de objetos ACX.
Parameters.Create
A estrutura que contém os parâmetros create que estão sendo usados para a solicitação ACX.
Parameters.Create.Control
Um ponteiro para parâmetros de serviço do sistema que são usados como parâmetros de entrada adicionais para a solicitação ACX.
Parameters.Create.ControlCb
A contagem em bytes (tamanho) do buffer Create.Control.
Comentários
O driver deve usar ACX_REQUEST_PARAMETERS somente ao trabalhar com solicitações ACX de E/S. O driver deve usar DDIs de solicitação do WDF para lidar com outros tipos de solicitações.
Exemplo
O uso de exemplo é mostrado abaixo.
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 do ACX
Versão mínima do ACX: 1.0
Para obter mais informações sobre as versões do ACX, consulte Visão geral da versão do ACX.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | acxrequest.h |