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