Partager via


Indicateurs d’inscription WMI

Un pilote indique si un bloc utilise des noms de instance statiques ou dynamiques et spécifie d’autres caractéristiques du bloc en définissant des indicateurs dans la structure WMIGUIDREGINFO ou WMIREGGUID qu’il transmet à WMI pour inscrire le bloc.

Un pilote indique qu’un bloc utilise des noms de instance statiques en définissant l’un des indicateurs suivants :

  • WMIREG_FLAG_INSTANCE_LIST indique que le pilote fournit tous les noms instance dans une liste statique.

    Un pilote peut définir cet indicateur uniquement s’il inscrit des blocs en gérant les requêtes IRP_MN_REGINFO ou IRP_MN_REGINFO_EX , et non en appelant WmiSystemControl. Le pilote écrit les chaînes de nom instance au décalage d’octet indiqué par InstanceNameList dans la structure WMIREGGUID du bloc.

  • WMIREG_FLAG_INSTANCE_BASENAME demande à WMI de générer des noms de instance statiques à partir d’une chaîne de nom de base définie par le pilote.

    Un pilote qui gère une requête IRP_MN_REGINFO ou IRP_MN_REGINFO_EX écrit la chaîne de nom de base au décalage indiqué par BaseNameOffset dans la structure WMIREGGUID du bloc.

    Un pilote qui appelle WmiSystemControl spécifie la chaîne de nom de base dans le paramètre InstanceName de sa routine DpWmiQueryReginfo .

  • WMIREG_FLAG_INSTANCE_PDO demande à WMI de générer des noms de instance statiques à partir de l’ID de instance de l’appareil du PDO du pilote.

    Un pilote qui gère une requête IRP_MN_REGINFO ou IRP_MN_REGINFO_EX écrit un pointeur vers l’AOP au niveau du membre Pdo de la structure WMIREGGUID du bloc. Si la requête est IRP_MN_REGINFO_EX, le pilote doit augmenter le nombre de références sur chaque AOP passé en appelant la routine ObReferenceObject . (Le système déréférencera chaque AOP ultérieurement.)

    Un pilote qui appelle WmiSystemControl écrit un pointeur vers le PDO dans le paramètre Pdo de sa routine DpWmiQueryReginfo .

Pour indiquer qu’un bloc utilise des noms de instance dynamiques, le pilote ne doit définir aucun des indicateurs suivants : WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_PDO ou WMIREG_FLAG_INSTANCE_BASENAME.

Un pilote indique qu’un bloc de données est coûteux à collecter en définissant WMIREG_FLAG_EXPENSIVE. Cela indique à WMI d’envoyer une demande de IRP_MN_ENABLE_COLLECTION la première fois qu’un client WMI ouvre le bloc de données et qu’une demande de IRP_MN_DISABLE_COLLECTION lorsque le dernier client WMI ferme le bloc. Le pilote n’a pas besoin de collecter des données pour un tel bloc tant qu’il n’a pas reçu une demande de IRP_MN_ENABLE_COLLECTION .

Un pilote indique un bloc d’événements en définissant WMIREG_FLAG_EVENT_ONLY_GUID. Cela indique que le bloc peut être activé ou désactivé en tant qu’événement uniquement, et ne peut pas être interrogé ou défini.

Un pilote indique à WMI de supprimer un bloc précédemment inscrit en définissant WMIREG_FLAG_REMOVE_GUID. 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 WMIUPDATE). Pour plus d’informations, consultez Mise à jour des informations d’inscription WMI.