Einführung in WMI für KMDF-Treiber

[Gilt nur für KMDF]

Kernel-Mode Driver Framework unterstützt Treiber, die Informationen zur Windows-Verwaltungsinstrumentation (WMI ) bereitstellen. Solche Treiber werden als WMI-Datenanbieter bezeichnet, da sie Daten für WMI-Clients bereitstellen, bei denen es sich um Anwendungen handelt, die sich zum Empfangen von Informationen von WMI registriert haben.

WMI-Datenanbieter unterstützen WMI-Datenblöcke, die einen oder mehrere der folgenden Darstellen können:

  • Datenelemente, die gerätespezifische Daten enthalten, die ein Treiber an einen WMI-Client sendet oder von diesem empfängt.

  • Methoden (Funktionen), die der Treiber im Auftrag eines WMI-Clients ausführt.

  • Ereignisse , die der Treiber an WMI-Clients sendet, die sich registriert haben, um Benachrichtigungen über gerätespezifische Ereignisse zu erhalten.

WMI-Datenblöcke werden als WMI-Klassen in MOF-Dateien angegeben. Jeder WMI-Datenblock wird durch eine GUID identifiziert.

Alle Treiber müssen alle WMI-Standarddatenblöcke unterstützen, die WMI für ihre Geräteklasse definiert. Diese WMI-Datenblöcke sind in Wmicore.mof definiert.

Ihr Treiber kann auch WMI-Datenblöcke unterstützen, die Sie in einer MOF-Datei definieren. Informationen zum Definieren und Veröffentlichen benutzerdefinierter WMI-Datenblöcke finden Sie in den folgenden Abschnitten:

Framework WMI-Objekte und Rückruffunktionen

Das Framework definiert zwei Objekte, die Treiber zum Implementieren von WMI-Datenanbietern verwenden können. Das WMI-Anbieterobjekt stellt das Schema für WMI-Datenblöcke dar, das der Treiber bereitstellt. Das WMI-instance-Objekt stellt eine instance eines Datenblocks dar, der einem bestimmten Anbieter zugeordnet ist. Treiber kommunizieren mit WMI-Clients, indem sie die folgenden Ereignisrückruffunktionen implementieren, die diese beiden Objekte definieren:

EvtWmiProviderFunctionControl
Aktiviert und deaktiviert die Unterstützung des Treibers für das Sammeln von WMI-Daten und das Senden von WMI-Ereignissen.

EvtWmiInstanceQueryInstance
Stellt die instance Daten eines WMI-Anbieters an einen WMI-Client bereit.

EvtWmiInstanceSetInstance und EvtWmiInstanceSetItem
Legen Sie Informationen im Datenblock eines Treibers auf vom Client bereitgestellte Werte fest.

EvtWmiInstanceExecuteMethod
Führt eine vom Treiber bereitgestellte Methode auf Anforderung eines Clients aus.

Beispieltreiber, die WMI implementieren

Die BEISPIELtreiber FIREFLY, PCIDRV und Toaster sind WMI-Datenanbieter.