ACX_REQUEST_PARAMETERS estrutura (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, um método ou um 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 o 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.
- Propriedades do KS
- eventos KS
- métodos KS
Além disso, os tópicos a seguir podem ser úteis.
conjuntos de propriedades de drivers de áudioestrutura 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 que é usada para essa solicitação. Para obter mais informações sobre a Função Secundária, consulte as associadas ao IRP principal, por exemplo, Plug and Play Minor IRPs, POWER Management Minor IRPs e WMI Minor IRPs.
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 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 de 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 de criação 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.
Observações
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 versões do ACX, consulte visão geral da versão do ACX.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | acxrequest.h |