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

Voir aussi