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 den Treiber dann registrieren (erneut registrieren) soll. Die erneute Registrierung 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 erneut nach einer neuen Liste von GUID-Bezeichnern abfragen soll, für die Daten bereitgestellt werden. 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 status Code 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 Aktion angegebene Aktion ungültig war.
STATUS_XXX
Gibt an, dass die Anforderung aus dem durch den NTSTATUS-Wert angegebenen Grund fehlgeschlagen ist. Ausführliche Informationen zum tatsächlichen status Rückgabecode finden Sie unter Ntstatus.h.

Hinweise

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

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

Wenn ein Gerät plötzlich entfernt wird (z. B. bei einer überraschenden Entfernung), wodurch der PnP-Manager eine IRP_MN_SURPRISE_REMOVAL IRP sendet, muss der Treiber IoWMIRegistrationControl aufrufen und WMIREG_ACTION_DEREGISTER in Aktion im Aufruf angeben. Beachten Sie folgendes: Wenn der Treiber IoWMIRegistrationControl aufruft , wobei Action auf WMIREG_ACTION_DEREGISTER als Reaktion auf eine IRP_MN_SURPRISE_REMOVAL IRP festgelegt ist, darf der Treiber nicht den gleichen Aufruf von IoWMIRegistrationControl als Reaktion auf eine IRP_MN_REMOVE_DEVICE IRP durchführen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm)

Weitere Informationen

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IRP_MN_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL