Partilhar via


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.

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(&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 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

Consulte também

  • de cabeçalho acxrequest.h