Freigeben über


IoWMIRegistrationControl-Funktion (wdm.h)

Die IoWMIRegistrationControl Routine registriert oder hebt die Registrierung des Aufrufers als WMI-Datenanbieter für ein angegebenes Geräteobjekt auf.

Syntax

NTSTATUS IoWMIRegistrationControl(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] ULONG          Action
);

Parameter

[in] DeviceObject

Ein Zeiger auf ein Geräteobjekt. Dieses Objekt ist eine DEVICE_OBJECT Systemstruktur.

[in] Action

Die Aktion, die WMI ausführen soll. Die angeforderte Aktion wird durch einen der folgenden Werte angegeben.

Aktionswert Bedeutung
WMIREG_ACTION_REGISTER Gibt an, dass WMI den Aufrufer als WMI-Anbieter für DeviceObject-registrieren soll. Dies führt dazu, dass WMI eine IRP_MN_REGINFO oder IRP_MN_REGINFO_EX Anforderung an den Treiber sendet.
WMIREG_ACTION_DEREGISTER Gibt an, dass WMI den Aufrufer aus der Liste der WMI-Anbieter für DeviceObject-entfernen soll.
WMIREG_ACTION_REREGISTER Gibt an, dass WMI die Registrierung des Treibers aufheben und dann den Treiber registrieren (erneut registrieren) soll. Das Erneute Registrieren des Treibers führt dazu, dass WMI eine IRP_MN_REGINFO oder IRP_MN_REGINFO_EX Anforderung an den Treiber sendet.
WMIREG_ACTION_UPDATE_GUIDS Gibt an, dass WMI den Treiber für eine neue Liste von GUID-Bezeichnern erneut abfragen soll, für die er Daten bereitstellt. Dies führt dazu, dass WMI eine IRP_MN_REGINFO oder IRP_MN_REGINFO_EX Anforderung an den Treiber sendet.

Rückgabewert

IoWMIRegistrationControl gibt einen Statuscode aus der folgenden Liste zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Gibt an, dass WMI die angeforderte Aktion ohne Fehler abgeschlossen hat.
STATUS_INVALID_PARAMETER
Gibt an, dass die in Aktionangegebene Aktion ungültig war.
STATUS_XXX-
Gibt an, dass die Anforderung aus dem vom NTSTATUS-Wert angegebenen Grund fehlgeschlagen ist. Ausführliche Informationen zum tatsächlichen Statusrücklaufcode finden Sie unter Ntstatus.h.

Bemerkungen

Nachdem ein Treiber IoWMIRegistrationControl-aufgerufen hat, sendet WMI dem Treiber eine IRP_MN_REGINFO oder IRP_MN_REGINFO_EX Anforderung, damit der Treiber Informationen an WMI bereitstellen kann. Weitere Informationen finden Sie unter Registrieren als WMI-Datenanbieter.

Wenn der Aufrufer WMIREG_ACTION_DEREGISTER für Actionangibt, IoWMIRegistrationControl bewirkt, dass der aufrufende Thread blockiert wird, bis alle IRP_MJ_SYSTEM_CONTROL Anforderungen, die zuvor an das angegebene Geräteobjekt gesendet wurden, abgeschlossen wurden. Wenn ein Treiber in einem solchen Fall IoWMIRegistrationControl innerhalb einer Dispatch-Routine für eine IRP_MJ_SYSTEM_CONTROL Anforderung aufruft, wird der aufrufende Thread inaktiviert.

Wenn ein Gerät plötzlich entfernt wird (z. B. in einer Überraschungsentfernung), wodurch der PnP-Manager eine IRP_MN_SURPRISE_REMOVAL IRP sendet, muss der Treiber IoWMIRegistrationControl- aufrufen und WMIREG_ACTION_DEREGISTER in Aktion im Anruf angeben. Beachten Sie, dass der Treiber, wenn der Treiber IoWMIRegistrationControl- mit Action- als Reaktion auf ein IRP_MN_SURPRISE_REMOVAL IRP auf WMIREG_ACTION_DEREGISTER festgelegt wird, nicht denselben Aufruf an IoWMIRegistrationControl als Reaktion auf ein IRP_MN_REMOVE_DEVICE IRP ausführen darf.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm)

Siehe auch

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IRP_MN_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL