Compartilhar via


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(&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 as versões do ACX, consulte Visão geral da versão do ACX.

Requisitos

Requisito Valor
Cabeçalho acxrequest.h

Confira também