Structure WMIGUIDREGINFO (wmilib.h)

La structure WMIGUIDREGINFO contient des informations d’inscription pour un bloc de données ou un bloc d’événements donné exposé par un pilote qui utilise les routines de prise en charge de la bibliothèque WMI.

Syntaxe

typedef struct _WMIGUIDREGINFO {
  LPCGUID Guid;
  ULONG   InstanceCount;
  ULONG   Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;

Membres

Guid

Pointeur vers le GUID qui identifie le bloc. La mémoire qui contient le GUID peut être paginée, sauf si elle est également utilisée pour appeler WmiFireEvent.

InstanceCount

Spécifie le nombre d’instances définies pour le bloc.

Flags

Indicateurs de bits qui indiquent les caractéristiques du bloc. Ces bits d’indicateur sont définis dans le fichier d’en-tête Wmistr.h. ORs WMI valeur du paramètre Flags avec les bits d’indicateur définis par le pilote dans le paramètre RegFlags de sa routine DpWmiQueryReginfo , qui s’appliquent à tous les blocs de données et blocs d’événements inscrits par le pilote. Les indicateurs complètent donc les paramètres par défaut du pilote pour un bloc donné.

Un pilote peut définir le bit d’indicateur suivant dans Indicateurs :

WMIREG_FLAG_INSTANCE_PDO

Demande à WMI de générer des noms de instance statiques à partir de l’ID de instance de l’appareil pour l’AOP. Si cet indicateur est défini, le paramètre Pdo de la routine DpWmiQueryReginfo du pilote pointe vers l’AOP passée à la routine AddDevice du pilote. WMI génère des noms instance à partir du chemin d’instance de l’appareil de l’ADO. L’utilisation du chemin d’instance de l’appareil comme base pour les noms de instance statiques est efficace, car ces noms sont garantis comme uniques. WMI fournit automatiquement un nom « convivial » pour le instance en tant qu’élément d’un bloc de données pouvant être interrogé par les consommateurs de données.

Un pilote peut également définir un ou plusieurs des bits d’indicateur suivants :

WMIREG_FLAG_EVENT_ONLY_GUID

Le bloc peut être activé ou désactivé en tant qu’événement uniquement, et ne peut pas être interrogé ou défini. Si cet indicateur est clair, le bloc peut également être interrogé ou défini.

WMIREG_FLAG_EXPENSIVE

Demande à WMI d’envoyer une demande de IRP_MN_ENABLE_COLLECTION la première fois qu’un consommateur de données ouvre le bloc de données et une demande de IRP_MN_DISABLE_COLLECTION lorsque le dernier consommateur de données ferme le bloc de données. Cela est recommandé si la collecte de ces données affecte les performances, car un pilote n’a pas besoin de collecter les données tant qu’un consommateur de données ne les demande pas explicitement en ouvrant le bloc.

WMIREG_FLAG_REMOVE_GUID

Demande à WMI de supprimer la prise en charge de ce bloc. Cet indicateur est valide uniquement en réponse à une demande de mise à jour des informations d’inscription (IRP_MN_REGINFO ou IRP_MN_REGINFO_EX avec Parameters.WMI.DataPath défini sur WMIUPDATE).

Remarques

Un pilote qui gère les irps WMI en appelant des routines de prise en charge de bibliothèque WMI crée un tableau de structures WMIGUIDREGINFO , une pour chaque bloc de données et bloc d’événements à inscrire. Le pilote définit le membre GuidList de sa structure WMILIB_CONTEXT pour qu’il pointe vers le premier WMIGUIDREGINFO de la série.

La mémoire de cette structure peut être allouée à partir d’un pool paginé.

Configuration requise

Condition requise Valeur
En-tête wmilib.h (inclure Wmilib.h)

Voir aussi

DpWmiQueryReginfo

IRP_MN_DISABLE_COLLECTION

IRP_MN_ENABLE_COLLECTION

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMILIB_CONTEXT

WmiFireEvent