Entwickeln eines WMI-Anbieters

Ein Anbieter ist ein COM-Objekt (Component Object Model), das als Vermittler zwischen WMI und einem verwalteten Objekt fungiert. Wenn z. B. eine Anwendung oder ein Skript Datenträgerdaten mithilfe der WMI-Klasse Win32_LogicalDisk anfordert, werden die Daten dynamisch über den vorinstallierten Win32-Anbieter abgerufen.

Wenn Sie anderen Anwendungen Daten über WMI bereitstellen möchten, können Sie einen Anbieter für nicht verwalteten Code erstellen, indem Sie einen COM-Server schreiben oder die WMI-ATL-Assistenten in Visual Studio verwenden. Sie können einen Anbieter für verwalteten Code schreiben, indem Sie WMI im .NET Framework verwenden. In den Themen in diesem Abschnitt wird der Prozess zum Schreiben eines nicht verwalteten COM-Anbieters beschrieben.

Hinweis

Um sicherzustellen, dass bei einem Fehler und Neustart von WMI alle Ihre WMI-Klassendefinitionen für verwaltete Objekte im WMI-Repository wiederhergestellt werden, verwenden Sie die Präprozessoranweisung #pragma autorecover in Ihrer MOF-Datei (Managed Object Format).

Ein Anbieter besteht aus Klassen, die im MOF-Schema (Managed Object Format) definiert sind, und einer DLL-Datei, die die Funktionen des Anbieters ausführt. Beispielsweise ist die MOF-Datei, die die Klassen des Win32-Anbieters definiert, CIMWin32.mof, und die DLL-Datei ist CIMWin32.dll. Beide befinden sich in „%windir%\System32\Wbem“.

Das MOF-Schema für den Anbieter kann mehrere Anbietertypen enthalten. Beispielsweise verfügt der Ereignisprotokollanbieter über Instanz-, Methoden- und Ereignisanbietertypen in einer MOF-Datei namens „Ntevt.mof“. Es wird empfohlen, alle Klassen und das Registrierungsschema für verwandte Anbieter in einer Datei zusammenzustellen, anstatt eine Datei pro Klasse zu erstellen.

Zusätzlich zur Verwendung vorinstallierter Anbieter können Sie einen eigenen Anbieter erstellen, der Informationen zu einem Hardwaregerät oder zu den Vorgängen der Software bereitstellen kann.

In der folgenden Tabelle sind die grundlegenden Aufgaben aufgeführt, mit denen ein Anbieter erstellt wird.

Aufgabe BESCHREIBUNG
Entwerfen von MOF-Klassen (Managed Object Format) Entwickeln Sie ein Modell für die Entitäten, die Sie über WMI verwalten möchten, und erstellen Sie eine MOF-Datei (Managed Object Format), um das Schema zu beschreiben.
Bereitstellen von Daten für WMI durch Schreiben eines Anbieters Erstellen Sie den einfachsten Anbieter, der mit WMI gekoppelt ist.
Integrieren eines Anbieters in eine Anwendung Schließen Sie den Anbieter als Komponente in eine Anwendung ein, wenn er nicht die ganze Zeit ausgeführt wird.
Registrieren eines Anbieters Registrieren Sie den Anbieter bei COM und WMI.
Initialisieren eines Anbieters Implementieren Sie die Schnittstellen IWbemProviderInit und IWbemProviderInitSink.
Tätigen von Aufrufen an WMI Rufen Sie WMI-Schnittstellen von einem Anbieter auf.
Identitätswechsel eines Clients Legen Sie die Sicherheit für den Zugriff auf eine Clientanwendung fest.
Aktualisieren eines Anbieters Verbessern Sie den Anbieter nach Bedarf.
Entladen eines Anbieters Entfernen Sie den Anbieter aus dem Arbeitsspeicher, wenn der Anbieter heruntergefahren wird oder sich im Leerlauf befindet.
Debuggen von Anbietern und Anbieterkonfigurations- und Problembehandlungsklassen Debuggen Sie Ihren Anbieter mithilfe der von WMI bereitgestellten Einrichtungen.
Abrufen und Bereitstellen von Daten auf einem 64-Bit-Computer Werten Sie aus, ob Sie einen Anbieter benötigen, der mit 32-Bit-Anwendungen kompatibel ist, oder ob der 64-Bit-Anbieter Daten für beide Clients bereitstellen kann.

In den folgenden Themen werden die Schritte erläutert, die zum Schreiben verschiedener Anbietertypen erforderlich sind: