Structure WMIREGGUIDW (wmistr.h)
La structure WMIREGGUID contient des informations d’inscription nouvelles ou mises à jour pour un bloc de données ou un bloc d’événements.
Syntaxe
typedef struct {
GUID Guid;
ULONG Flags;
ULONG InstanceCount;
union {
ULONG InstanceNameList;
ULONG BaseNameOffset;
ULONG_PTR Pdo;
ULONG_PTR InstanceInfo;
} DUMMYUNIONNAME;
} WMIREGGUIDW, *PWMIREGGUIDW;
Membres
Guid
Spécifie le GUID qui représente le bloc à inscrire ou à mettre à jour.
Flags
Indique les caractéristiques du bloc à inscrire ou à mettre à jour.
Si un bloc est inscrit avec des noms de instance statiques, un pilote définit l’un des indicateurs suivants :
WMIREG_FLAG_INSTANCE_LIST
Indique que le pilote fournit des noms de instance statiques pour ce bloc dans une liste statique suivant la structure WMIREGINFO dans la mémoire tampon sur IrpStack-Parameters.WMI.Buffer>. Si cet indicateur est défini, InstanceNameList est le décalage en octets du début de la structure WMIREGINFO qui contient ce WMIREGGUID vers une série contiguë de chaînes Unicode comptées InstanceCount .
WMIREG_FLAG_INSTANCE_BASENAME
Demande à WMI de générer des noms de instance statiques à partir d’un nom de base fourni par le pilote suivant la structure WMIREGINFO dans la mémoire tampon sur IrpStack-Parameters.WMI.Buffer>. WMI génère des noms instance en ajoutant un compteur au nom de base. Si cet indicateur est défini, BaseNameOffset est le décalage en octets du début de la structure WMIREGINFO qui contient ce WMIREGGUID vers une chaîne Unicode comptée unique qui sert de nom de base.
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, InstanceInfo pointe vers l’AOP passé à la routine AddDevice du pilote. WMI génère des noms instance à partir du chemin d’accès instance de l’appareil de l’AOP. 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 qui peut être interrogé par les consommateurs de données.
Si un bloc est inscrit avec des noms de instance dynamiques, WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_BASENAME et WMIREG_FLAG_INSTANCE_PDO doivent être clairs.
Un pilote peut également définir un ou plusieurs des indicateurs 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 telles 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).
WMIREG_FLAG_TRACED_GUID
Le bloc ne peut être écrit que dans un fichier journal et n’est accessible que par le biais de routines en mode utilisateur déclarées dans evntrace.h. Seuls les fournisseurs de données en mode noyau NT définissent cet indicateur.
WMIREG_FLAG_TRACE_CONTROL_GUID
Le GUID fait office de GUID de contrôle pour activer ou désactiver les GUID de trace qui lui sont associés dans le fichier MOF. Cet indicateur n’est valide que si WMIREG_FLAG_TRACED_GUID est également défini. Seuls les fournisseurs de données en mode noyau NT définissent cet indicateur.
InstanceCount
Spécifie le nombre de noms de instance statiques à définir pour ce bloc. Si le bloc est inscrit avec des noms de instance dynamiques, WMI ignore InstanceCount.
DUMMYUNIONNAME
DUMMYUNIONNAME.InstanceNameList
Indique le décalage en octets du début de la structure WMIREGINFO qui contient ce WMIREGGUID vers une série contiguë de chaînes Unicode comptées InstanceCount . Ce membre n’est valide que si WMIREG_FLAG_INSTANCE_LIST est défini dans Indicateurs. Si le bloc est inscrit avec des noms de instance dynamiques, WMI ignore InstanceNameList.
DUMMYUNIONNAME.BaseNameOffset
Indique le décalage en octets du début de la structure WMIREGINFO qui contient ce WMIREGGUID sur une chaîne Unicode comptée unique qui sert de base pour WMI afin de générer des noms de instance statiques. Ce membre est valide uniquement si WMIREG_FLAG_INSTANCE_BASENAME est défini dans Indicateurs. Si le bloc est inscrit avec des noms de instance dynamiques, WMI ignore BaseNameOffset.
DUMMYUNIONNAME.Pdo
Pointeur vers l’objet de périphérique physique (PDO) passé à la routine AddDevice du pilote. WMI utilise le chemin d’accès instance de l’appareil de ce PDO comme base à partir de laquelle générer des noms de instance statiques. Ce membre est valide uniquement si WMIREG_FLAG_INSTANCE_PDO est défini dans Indicateurs. Si le bloc est inscrit avec des noms de instance dynamiques, WMI ignore Pdo.
DUMMYUNIONNAME.InstanceInfo
Réservé à l’utilisation par WMI.
Remarques
Un pilote génère une ou plusieurs structures WMIREGGUID en réponse à une demande IRP_MN_REGINFO ou IRP_MN_REGINFO_EX d’inscription ou de mise à jour de ses blocs. Le pilote transmet un tableau de telles structures au membre WmiRegGuid d’une structure WMIREGINFO, que le pilote écrit dans la mémoire tampon à l’adresse IrpStack-Parameters.WMI.Buffer>.
Un pilote peut inscrire ou mettre à jour un bloc avec des noms de instance statiques ou dynamiques. Les noms de instance statiques offrent de meilleures performances. Toutefois, les noms de instance dynamiques sont préférés pour les blocs de données si le nombre d’instances ou de noms de instance change fréquemment. Pour plus d’informations sur les noms instance, consultez Définition des noms d’instance WMI.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | wmistr.h (inclure Wmistr.h) |