Partager via


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.

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

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

Voir aussi