structure ACX_REQUEST_PARAMETERS (acxrequest.h)
La structure ACX_REQUEST_PARAMETERS reçoit des paramètres associés à une requête ACX d’E/S.
Les paramètres suivants sont basés sur le service appelé, tel qu’une propriété, une méthode ou un événement. Les pilotes peuvent déterminer le jeu à utiliser en fonction de la ACX_ITEM_TYPE.
Les trois utilisations de cette structure facilitent les communications vers les types de diffusion en continu de noyau (KS) existants. Pour plus d’informations sur KS, consultez propriétés, événements et méthodes KS.
Pour plus d’informations sur chacun des types, consultez les rubriques suivantes.
- propriétés KS
- événements KS
- méthodes KS
En outre, les rubriques suivantes peuvent être utiles.
ensembles de propriétés pilotes audiola structure KSIDENTIFIER (ks.h)
Syntaxe
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;
Membres
Size
Taille de la structure en octets.
MajorFunction
Fonction principale IRP WDF utilisée pour cette requête, par exemple IRP_MJ_DEVICE_CONTROL. Pour plus d’informations sur le protocole IRP WDF, consultez codes de fonction principaux IRP.
MinorFunction
Fonction mineure IRP WDF utilisée pour cette requête. Pour plus d’informations sur la fonction mineure, reportez-vous à l’IRP principale, par exemple plug-and-play secondaires, les fournisseurs d’intégration secondaires de gestion de l’alimentation et les fournisseurs d’intégration secondaireS WMI.
Type
L’énumération ACX_REQUEST_TYPE décrit le type d’éléments qui seront envoyés dans la requête. Selon le type spécifié, un sous-ensemble des paramètres répertoriés ci-dessous sera utilisé.
Parameters
Parameters.Property
Les paramètres de propriétés KS sont utilisés pour la requête ACX. Pour plus d’informations, consultez structure KSPROPERTY.
Parameters.Property.Set
Spécifie un GUID qui identifie un jeu de propriétés de diffusion en continu du noyau.
Parameters.Property.Id
Spécifie le membre du jeu de propriétés.
Parameters.Property.Verb
Énumération ACX_PROPERTY_VERB qui décrit le verbe de propriété.
Parameters.Property.ItemType
Énumération ACX_ITEM_TYPE qui décrit le type d’élément ACX étant la cible de cette requête.
Parameters.Property.ItemId
ID d’élément.
Parameters.Property.Control
Pointeur vers les paramètres de service système utilisés comme paramètres d’entrée supplémentaires pour la requête ACX.
Parameters.Property.ControlCb
Nombre d’octets (taille) de la mémoire tampon Property.Control.
Parameters.Property.Value
Pointeur vers la valeur de la propriété.
Parameters.Property.ValueCb
Nombre d’octets (taille) de la mémoire tampon Property.Value.
Parameters.Method
Paramètres utilisés pour une requête méthodes KS.
Parameters.Method.Set
Spécifie un GUID qui identifie un jeu de méthodes de diffusion en continu du noyau.
Parameters.Method.Id
Spécifie le membre du jeu de méthodes.
Parameters.Method.Verb
Énumération ACX_METHOD_VERB qui décrit l’élément en cours d’envoi.
Parameters.Method.ItemType
Énumération ACX_ITEM_TYPE qui décrit le type d’élément ACX étant la cible de cette requête.
Parameters.Method.ItemId
ID d’élément de l’élément en cours d’envoi.
Parameters.Method.Args
Pointeur vers des arguments facultatifs pour la méthode.
Parameters.Method.ArgsCb
Nombre d’octets (taille) des arguments facultatifs pour la méthode.
Parameters.Method.Result
Pointeur vers le résultat de la méthode.
Parameters.Method.ResultCb
Nombre d’octets (taille) de la mémoire tampon Method.Result.
Parameters.Event
Paramètres utilisés pour événements KS utilisés pour la requête ACX. Pour plus d’informations, consultez structure KSEVENT.
Parameters.Event.Set
Spécifie un GUID qui identifie un jeu d’événements de streaming de noyau.
Parameters.Event.Id
Spécifie le membre du jeu d’événements.
Parameters.Event.Verb
Énumération ACX_EVENT_VERB qui décrit l’élément envoyé.
Parameters.Event.ItemType
Énumération ACX_ITEM_TYPE qui décrit le type d’élément ACX étant la cible de cette requête.
Parameters.Event.ItemId
ID de l’élément d’événement.
Parameters.Event.Data
Pointeur vers les données d’événement.
Parameters.Event.DataCb
Nombre d’octets (taille) de la mémoire tampon Event.Data.
Parameters.Event.EventData
Objet ACXEVENTDATA. Pour plus d’informations sur les objets ACX, consultez Résumé des objets ACX.
Parameters.Create
Structure qui contient les paramètres de création utilisés pour la requête ACX.
Parameters.Create.Control
Pointeur vers les paramètres de service système utilisés comme paramètres d’entrée supplémentaires pour la requête ACX.
Parameters.Create.ControlCb
Nombre d’octets (taille) de la mémoire tampon Create.Control.
Remarques
Le pilote doit utiliser ACX_REQUEST_PARAMETERS uniquement lors de l’utilisation des requêtes ACX d’E/S. Le pilote doit utiliser des DDIS de requête WDF pour gérer d’autres types de requêtes.
Exemple
L’exemple d’utilisation est illustré ci-dessous.
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.
Configuration requise pour ACX
version minimale d’ACX : 1.0
Pour plus d’informations sur les versions ACX, consultez vue d’ensemble de la version ACX.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | acxrequest.h |