Fonction IoWMIRegistrationControl (wdm.h)
La routine IoWMIRegistrationControl inscrit ou annule l’inscription de l’appelant en tant que fournisseur de données WMI pour un objet d’appareil spécifié.
Syntaxe
NTSTATUS IoWMIRegistrationControl(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Action
);
Paramètres
[in] DeviceObject
Pointeur vers un objet d’appareil. Cet objet est une structure système DEVICE_OBJECT .
[in] Action
Action que WMI doit effectuer. L’action demandée est indiquée par l’une des valeurs suivantes.
Valeur de l’action | Signification |
---|---|
WMIREG_ACTION_REGISTER | Spécifie que WMI doit inscrire l’appelant en tant que fournisseur WMI pour DeviceObject. WMI envoie alors une requête IRP_MN_REGINFO ou IRP_MN_REGINFO_EX au pilote. |
WMIREG_ACTION_DEREGISTER | Spécifie que WMI doit supprimer l’appelant de sa liste de fournisseurs WMI pour DeviceObject. |
WMIREG_ACTION_REREGISTER | Spécifie que WMI doit annuler l’inscription du pilote, puis inscrire (réinscrire) le pilote. La réinscrire le pilote entraîne l’envoi par WMI d’une requête IRP_MN_REGINFO ou IRP_MN_REGINFO_EX au pilote. |
WMIREG_ACTION_UPDATE_GUIDS | Spécifie que WMI doit interroger à nouveau le pilote pour obtenir une nouvelle liste d’identificateurs GUID pour 1000. WMI envoie alors une requête IRP_MN_REGINFO ou IRP_MN_REGINFO_EX au pilote. |
Valeur retournée
IoWMIRegistrationControl retourne un code status de la liste suivante :
Code de retour | Description |
---|---|
|
Indique que WMI a terminé l’action demandée sans erreur. |
|
Indique que l’action, spécifiée dans Action, n’était pas valide. |
|
Indique que la demande a échoué pour la raison spécifiée par la valeur NTSTATUS. Consultez Ntstatus.h pour obtenir des informations détaillées sur le code de retour status réel. |
Remarques
Une fois qu’un pilote a appelé IoWMIRegistrationControl, WMI envoie au pilote une requête IRP_MN_REGINFO ou IRP_MN_REGINFO_EX afin que le pilote puisse fournir des informations à WMI. Pour plus d’informations, consultez Inscription en tant que fournisseur de données WMI.
Si l’appelant spécifie WMIREG_ACTION_DEREGISTER pour Action, IoWMIRegistrationControl bloque le thread appelant jusqu’à ce que toutes les demandes IRP_MJ_SYSTEM_CONTROL précédemment envoyées à l’objet d’appareil spécifié soient terminées. Dans ce cas, si un pilote appelle IoWMIRegistrationControl au sein d’une routine de répartition pour une demande de IRP_MJ_SYSTEM_CONTROL , le thread appelant interblocage.
Si un appareil est supprimé soudainement (par exemple, lors d’une suppression surprise), entraînant l’envoi par le gestionnaire PnP d’un IRP_MN_SURPRISE_REMOVAL IRP, le pilote doit appeler IoWMIRegistrationControl et spécifier WMIREG_ACTION_DEREGISTER dans Action dans l’appel. Notez que si le pilote appelle IoWMIRegistrationControl avec Action définie sur WMIREG_ACTION_DEREGISTER en réponse à un IRP IRP_MN_SURPRISE_REMOVAL , le pilote ne doit pas effectuer le même appel à IoWMIRegistrationControl en réponse à une IRP IRP_MN_REMOVE_DEVICE .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |