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) |