Condividi tramite


struttura ACX_REQUEST_PARAMETERS (acxrequest.h)

La struttura ACX_REQUEST_PARAMETERS riceve i parametri associati a una richiesta ACX di I/O.

I parametri seguenti sono basati sul servizio richiamato, ad esempio una proprietà, un metodo o un evento. I driver possono determinare il set da usare in base al ACX_ITEM_TYPE.

I tre usi di questa struttura facilitano le comunicazioni con i tipi di streaming del kernel (KS) esistenti. Per altre informazioni su KS, vedere Proprietà, eventi e metodi KS.

Per informazioni specifiche su ognuno dei tipi, vedere gli argomenti seguenti.

Inoltre, gli argomenti seguenti possono essere utili.

Proprietà Driver audio Impostastruttura KSIDENTIFIER (ks.h)

Sintassi

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;

Members

Size

Dimensioni della struttura in byte.

MajorFunction

Funzione principale di IRP WDF usata per questa richiesta, ad esempio IRP_MJ_DEVICE_CONTROL. Per altre informazioni su IRP di WDF, vedere Codici di funzione principali di IRP.

MinorFunction

Funzione secondaria IRP WDF usata per questa richiesta. Per altre informazioni sulla funzione secondaria, vedere l'oggetto associato all'IRP principale, ad esempio Plug and Play IRP secondari, i runtime di integrazione secondari di risparmio energia e i provider di integrazione secondari WMI.

Type

L'enumerazione ACX_REQUEST_TYPE descrive il tipo di elementi che verranno inviati nella richiesta. A seconda del tipo specificato, verrà usato un subset dei parametri elencati di seguito.

Parameters

Parameters.Property

I parametri per le proprietà KS vengono usati per la richiesta ACX. Per altre informazioni, vedere Struttura KSPROPERTY.

Parameters.Property.Set

Specifica un GUID che identifica un set di proprietà di streaming del kernel.

Parameters.Property.Id

Specifica il membro del set di proprietà.

Parameters.Property.Verb

Enumerazione ACX_PROPERTY_VERB che descrive il verbo della proprietà.

Parameters.Property.ItemType

Enumerazione ACX_ITEM_TYPE che descrive il tipo di elemento ACX come destinazione della richiesta.

Parameters.Property.ItemId

ID elemento.

Parameters.Property.Control

Puntatore ai parametri del servizio di sistema usati come parametri di input aggiuntivi per la richiesta ACX.

Parameters.Property.ControlCb

Conteggio in byte (dimensioni) del buffer Property.Control.

Parameters.Property.Value

Puntatore al valore della proprietà.

Parameters.Property.ValueCb

Conteggio in byte (dimensioni) del buffer Property.Value.

Parameters.Method

Parametri usati per una richiesta di metodi KS .

Parameters.Method.Set

Specifica un GUID che identifica un set di metodi di streaming del kernel.

Parameters.Method.Id

Specifica il membro del set di metodi.

Parameters.Method.Verb

Enumerazione ACX_METHOD_VERB che descrive l'elemento inviato.

Parameters.Method.ItemType

Enumerazione ACX_ITEM_TYPE che descrive il tipo di elemento ACX come destinazione della richiesta.

Parameters.Method.ItemId

ID elemento dell'elemento inviato.

Parameters.Method.Args

Puntatore agli argomenti facoltativi per il metodo .

Parameters.Method.ArgsCb

Conteggio in byte (dimensioni) degli argomenti facoltativi per il metodo .

Parameters.Method.Result

Puntatore al risultato del metodo .

Parameters.Method.ResultCb

Conteggio in byte (dimensioni) del buffer Method.Result.

Parameters.Event

Parametri usati per gli eventi KS usati per la richiesta ACX. Per altre informazioni, vedere Struttura KSEVENT.

Parameters.Event.Set

Specifica un GUID che identifica un set di eventi di streaming del kernel.

Parameters.Event.Id

Specifica il membro del set di eventi.

Parameters.Event.Verb

Enumerazione ACX_EVENT_VERB che descrive l'elemento inviato.

Parameters.Event.ItemType

Enumerazione ACX_ITEM_TYPE che descrive il tipo di elemento ACX come destinazione della richiesta.

Parameters.Event.ItemId

ID elemento dell'evento.

Parameters.Event.Data

Puntatore ai dati dell'evento.

Parameters.Event.DataCb

Conteggio in byte (dimensioni) del buffer Event.Data.

Parameters.Event.EventData

Oggetto ACXEVENTDATA. Per altre informazioni sugli oggetti ACX, vedere Riepilogo degli oggetti ACX.

Parameters.Create

Struttura che contiene i parametri di creazione utilizzati per la richiesta ACX.

Parameters.Create.Control

Puntatore ai parametri del servizio di sistema usati come parametri di input aggiuntivi per la richiesta ACX.

Parameters.Create.ControlCb

Conteggio in byte (dimensioni) del buffer Create.Control.

Commenti

Il driver deve usare ACX_REQUEST_PARAMETERS solo quando si usano richieste ACX di I/O. Il driver deve usare le DDI della richiesta WDF per gestire altri tipi di richieste.

Esempio

Di seguito è riportato un esempio di utilizzo.

    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.

Requisiti di ACX

Versione minima di ACX: 1.0

Per altre informazioni sulle versioni ACX, vedere La panoramica della versione di ACX.

Requisiti

Requisito Valore
Intestazione acxrequest.h

Vedi anche