Actualización de la información de registro de WMI
Después de su registro inicial con WMI, un controlador cambia su información de registro llamando a IoWMIRegistrationControl con una de las siguientes acciones:
WMIREG_ACTION_REREGISTER reemplazar toda la información de registro proporcionada anteriormente por el controlador por nueva información.
En respuesta, WMI envía una solicitud de IRP_MN_REGINFO o una solicitud de IRP_MN_REGINFO_EX al controlador, con Parameters.WMI.DataPath establecido en WMIREGISTER. (En Windows 98 y Windows 2000, el sistema envía la solicitud de IRP_MN_REGINFO . En Windows XP y versiones posteriores, el sistema envía la solicitud de IRP_MN_REGINFO_EX ).
El controlador proporciona WMI con información de registro nueva para todos los bloques que admite, como se describe en Uso de la biblioteca WMI para registrar bloques y controlar IRP_MN_REGINFO y IRP_MN_REGINFO_EX a registrar bloques.
WMIREG_ACTION_UPDATE_GUIDS para agregar o quitar compatibilidad con bloques o para cambiar los nombres de instancia estáticos de los bloques registrados.
En respuesta, WMI envía una solicitud de IRP_MN_REGINFO o IRP_MN_REGINFO_EX al controlador, con Parameters.Wmi.DataPath establecido en WMIUPDATE.
El controlador proporciona WMI con una información de registro actualizada en la que:
El controlador establece WMIREG_FLAG_REMOVE_GUID para quitar la compatibilidad con ese bloque.
El controlador borra WMIREG_FLAG_REMOVE_GUID para agregar un nuevo bloque o actualizar un bloque existente.
El controlador establece o borra WMIREG_FLAG_INSTANCE_XXX y proporciona cualquier información de nombre de instancia necesaria para cambiar los nombres de instancia estáticos de un bloque o cambiarlo para usar nombres de instancia dinámicos.
WMIREG_ACTION_DEREGISTER indicar a WMI que el controlador ya no proporcionará información de WMI.
WMI no envía una solicitud de IRP_MN_REGINFO o IRP_MN_REGINFO_EX en respuesta a esta llamada, ya que no requiere más información del controlador. Normalmente, un controlador anula el registro de sus bloques en respuesta a una solicitud de IRP_MN_REMOVE_DEVICE . Tenga en cuenta que la llamada del registro se bloqueará hasta que se hayan completado todos los IRP de WMI en el dispositivo. Si un controlador pone en cola los IRP de WMI, debe cancelarlos antes de llamar a IoWMIRegistrationControl para anular el registro.