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 |
---|---|
|
Gibt an, dass WMI die angeforderte Aktion ohne Fehler abgeschlossen hat. |
|
Gibt an, dass die in Aktionangegebene Aktion ungültig war. |
|
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) |