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(¶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.
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 |