Поделиться через


Обновление сведений о регистрации WMI

После первоначальной регистрации в WMI драйвер изменяет сведения о регистрации, вызвав IoWMIRegistrationControl одним из следующих действий:

  • WMIREG_ACTION_REREGISTER заменить все сведения о регистрации, ранее предоставленные драйвером, новыми сведениями.

    В ответ WMI отправляет запрос IRP_MN_REGINFO или запрос IRP_MN_REGINFO_EX драйверу с параметром Parameters.WMI.DataPath , установленным для WMIREGISTER. (В Windows 98 и Windows 2000 система отправляет запрос IRP_MN_REGINFO . В Windows XP и более поздних версиях система отправляет запрос IRP_MN_REGINFO_EX .)

    Драйвер передает WMI новую информацию о регистрации для всех поддерживаемых блоков, как описано в разделе "Использование библиотеки WMI для регистрации блоков" и "Обработка IRP_MN_REGINFO и IRP_MN_REGINFO_EX для регистрации блоков".

  • Используйте WMIREG_ACTION_UPDATE_GUIDS, чтобы добавить или удалить поддержку для блоков или изменить имена статических экземпляров зарегистрированных блоков.

    В ответ WMI отправляет запрос IRP_MN_REGINFO или IRP_MN_REGINFO_EX драйверу с параметром Parameters.Wmi.DataPath , установленным для WMIUPDATE.

    Драйвер предоставляет WMI обновленную информацию о регистрации, в которой:

    • Драйвер задает WMIREG_FLAG_REMOVE_GUID, чтобы удалить поддержку этого блока.

    • Драйвер очищает WMIREG_FLAG_REMOVE_GUID, чтобы добавить новый блок или обновить существующий блок.

    • Драйвер задает или очищает WMIREG_FLAG_INSTANCE_XXX и предоставляет всю необходимую информацию об имени экземпляра для изменения статических имен экземпляров блока или изменения его на использование динамических имен экземпляров.

  • WMIREG_ACTION_DEREGISTER, чтобы указать WMI, что драйвер больше не предоставит сведения О WMI.

    WMI не отправляет запрос IRP_MN_REGINFO или IRP_MN_REGINFO_EX в ответ на этот вызов, так как он не требует дополнительной информации от драйвера. Драйвер обычно аннулирует регистрацию своих блоков в ответ на запрос IRP_MN_REMOVE_DEVICE. Обратите внимание, что вызов отмены регистрации будет блокироваться до тех пор, пока все IRP-запросы к устройству не будут завершены. Если драйвер ставит в очередь WMI IRP, он должен их отменить перед вызовом IoWMIRegistrationControl, чтобы отменить регистрацию.