Aktualisieren der WMI-Registrierungsinformationen

Nach der Erstregistrierung bei WMI ändert ein Treiber seine Registrierungsinformationen, indem er IoWMIRegistrationControl mit einer der folgenden Aktionen aufruft:

  • WMIREG_ACTION_REREGISTER, um alle zuvor vom Fahrer bereitgestellten Registrierungsinformationen durch neue Informationen zu ersetzen.

    Als Antwort sendet WMI entweder eine IRP_MN_REGINFO-Anforderung oder eine IRP_MN_REGINFO_EX Anforderung an den Treiber, wobei Parameters.WMI.DataPath auf WMIREGISTER festgelegt ist. (Unter Windows 98 und Windows 2000 sendet das System die IRP_MN_REGINFO Anforderung. Unter Windows XP und höher sendet das System die IRP_MN_REGINFO_EX Anforderung.)

    Der Treiber stellt WMI neue Registrierungsinformationen für alle unterstützten Blöcke bereit, wie unter Verwenden der WMI-Bibliothek zum Registrieren von Blöcken und behandeln IRP_MN_REGINFO und IRP_MN_REGINFO_EX zum Registrieren von Blöcken beschrieben.

  • WMIREG_ACTION_UPDATE_GUIDS, um Unterstützung für Blöcke hinzuzufügen oder zu entfernen oder die statischen instance Namen registrierter Blöcke zu ändern.

    Als Antwort sendet WMI eine IRP_MN_REGINFO - oder IRP_MN_REGINFO_EX-Anforderung an den Treiber, wobei Parameters.Wmi.DataPath auf WMIUPDATE festgelegt ist.

    Der Treiber stellt WMI mit aktualisierten Registrierungsinformationen bereit, in denen folgendes enthalten ist:

    • Der Treiber legt WMIREG_FLAG_REMOVE_GUID fest, um die Unterstützung für diesen Block zu entfernen.

    • Der Treiber löscht WMIREG_FLAG_REMOVE_GUID, um einen neuen Block hinzuzufügen oder einen vorhandenen Block zu aktualisieren.

    • Der Treiber legt WMIREG_FLAG_INSTANCE_XXX fest oder löscht sie und stellt alle erforderlichen instance Namensinformationen bereit, um die statischen instance Namen eines Blocks zu ändern oder ihn so zu ändern, dass dynamische instance Namen verwendet werden.

  • WMIREG_ACTION_DEREGISTER, um WMI anzuweisen, dass der Treiber keine WMI-Informationen mehr bereitstellt.

    WMI sendet keine IRP_MN_REGINFO - oder IRP_MN_REGINFO_EX-Anforderung als Antwort auf diesen Aufruf, da keine weiteren Informationen vom Treiber erforderlich sind. Ein Treiber hebt die Registrierung seiner Blöcke in der Regel als Reaktion auf eine IRP_MN_REMOVE_DEVICE Anforderung auf. Beachten Sie, dass der Aufruf zur Aufhebung der Registrierung blockiert wird, bis alle WMI-IRPs für das Gerät abgeschlossen sind. Wenn ein Treiber WMI-IRPs in die Warteschlange stellt, müssen sie abgebrochen werden, bevor IoWMIRegistrationControl aufgerufen wird, um die Registrierung aufzuheben.