ACX_REQUEST_PARAMETERS structure (acxrequest.h)
La structure ACX_REQUEST_PARAMETERS reçoit les 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 du ACX_ITEM_TYPE.
Les trois utilisations de cette structure facilitent les communications vers les types de streaming de noyau (KS) existants. Pour plus d’informations sur KS , consultez Propriétés, événements et méthodes KS.
Pour obtenir des informations spécifiques sur chacun des types, consultez les rubriques suivantes.
En outre, les rubriques suivantes peuvent être utiles.
Audio Drivers Property SetsKSIDENTIFIER structure (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 WDF IRP, consultez IRP Major Function Codes.
MinorFunction
Fonction mineure IRP WDF utilisée pour cette requête. Pour plus d’informations sur la fonction mineure, reportez-vous au associé à l’IRP principal, par exemple Plug-and-Play les IRP secondaires, lesIRP secondaires de gestion de l’alimentation et les IRP secondaires WMI.
Type
L’énumération ACX_REQUEST_TYPE décrit le type d’éléments qui seront envoyés dans la demande. Selon le type spécifié, un sous-ensemble des paramètres répertoriés ci-dessous est utilisé.
Parameters
Parameters.Property
Les paramètres des 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 qui est 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 qui sont utilisés comme paramètres d’entrée supplémentaires pour la requête ACX.
Parameters.Property.ControlCb
Nombre en octets (taille) de la mémoire tampon Property.Control.
Parameters.Property.Value
Pointeur vers la valeur de propriété.
Parameters.Property.ValueCb
Nombre en octets (taille) de la mémoire tampon Property.Value.
Parameters.Method
Paramètres utilisés pour une demande de méthodes KS .
Parameters.Method.Set
Spécifie un GUID qui identifie un ensemble 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 envoyé.
Parameters.Method.ItemType
Énumération ACX_ITEM_TYPE qui décrit le type d’élément ACX qui est la cible de cette requête.
Parameters.Method.ItemId
ID d’élément de l’élément envoyé.
Parameters.Method.Args
Pointeur vers des arguments facultatifs pour la méthode .
Parameters.Method.ArgsCb
Nombre en octets (taille) des arguments facultatifs de la méthode.
Parameters.Method.Result
Pointeur vers le résultat de la méthode .
Parameters.Method.ResultCb
Nombre en octets (taille) de la mémoire tampon Method.Result.
Parameters.Event
Paramètres utilisés pour les é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 diffusion en continu du 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 en cours d’envoi.
Parameters.Event.ItemType
Énumération ACX_ITEM_TYPE qui décrit le type d’élément ACX qui est la cible de cette requête.
Parameters.Event.ItemId
ID d’élément de l’événement.
Parameters.Event.Data
Pointeur vers les données d’événement.
Parameters.Event.DataCb
Nombre en 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 qui sont utilisés comme paramètres d’entrée supplémentaires pour la requête ACX.
Parameters.Create.ControlCb
Nombre en octets (taille) de la mémoire tampon Create.Control.
Remarques
Le pilote doit utiliser ACX_REQUEST_PARAMETERS uniquement lors de l’utilisation des demandes 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 ACX minimale : 1.0
Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | acxrequest.h |