Schreiben eines Klassenanbieters

Ein Klassenanbieter verwaltet eine Klasse oder Reihe von Klassen für WMI. Ein Klassenanbieter kann ein Push- oder Pullanbieter sein. Das heißt, er kann entweder eigene Daten speichern oder WMI erlauben, Daten dafür im Windows-Verwaltungsdienst zu speichern. Obwohl ein Klassenanbieter auf einem bestimmten Computer installiert ist, kann er die Klassendefinitionen in einem gesamten Unternehmen ändern. Daher erstellen die meisten Entwickler nicht häufig Klassenanbieter.

Überprüfen Sie vor Erstellen eines Klassenanbieters, ob die unterstützten Klassen wirklich dynamisch generiert werden müssen. In den meisten Fällen ändert sich die Liste der Klassen nur langsam und ist begrenzt. Wenn dies der Fall ist, sollten Sie keinen Klassenanbieter erstellen müssen. Stattdessen können Sie Ihre Klassendefinitionen mithilfe der WMI-API oder einer MOF-Datei im WMI-Repository platzieren.

Im folgenden Verfahren wird beschrieben, wie ein Klassenanbieter implementiert wird.

So implementieren Sie einen Klassenanbieter

  1. Ermitteln Sie, ob Ihr Anbieter ein Push- oder Pullanbieter ist.

    Ein Pullanbieter stellt Daten dynamisch als Reaktion auf eine Anwendungsanforderung bereit, während Pushanbieter ihre Daten einmal im WMI-Repository speichern. Weitere Informationen finden Sie unter Bestimmen des Push- oder Pullstatus.

  2. Entwerfen und registrieren Sie Ihren Klassenanbieters bei WMI.

    Klassenanbieter registrieren sich bei WMI, indem sie eine __Win32Provider-Instanz und eine __EventConsumerProviderRegistration-Klasse erstellen. Weitere Informationen finden Sie unter Registrieren eines Klassenanbieters.

  3. Implementieren Sie die IWbemProviderInit-Schnittstelle für Ihren Anbieter.

    WMI verwendet IWbemProviderInit zum Laden und Initialisieren eines Anbieters. Wenn Sie einen Pushanbieter entwerfen, ist IWbemProviderInit die einzige Schnittstelle, die Sie implementieren. Weitere Informationen finden Sie unter Initialisieren eines Anbieters.

    Hinweis

    Für Klassenanbieter wird dringend empfohlen, das Multithreadingmodell „Both“ zu verwenden.

     

  4. Fügen Sie zusätzlichen Code hinzu, der für Ihren Anbieter erforderlich ist.

    Beim Entwerfen Ihres Anbieters müssen Sie höchstwahrscheinlich WMI-Schnittstellen aufrufen. Weitere Informationen finden Sie unter Aufrufen einer Methode und Verwalten von Sicherheitsebenen in einem Anbieter.

    Beim Abrufen von Informationen für einen Client müssen Sie möglicherweise auf die Sicherheitsstufen für diesen Client zugreifen. Weitere Informationen finden Sie unter Durchführen eines Identitätswechsels für den Client.

  5. Implementieren Sie die IWbemServices-Schnittstelle für Ihren Anbieter.

    Die IWbemServices-Schnittstelle ist die primäre Schnittstelle für einen Pullklassenanbieter. Weitere Informationen finden Sie unter Implementieren der primären Schnittstelle für einen Klassenanbieter.

  6. Ersetzen Sie den bereits vorhandenen Anbieter durch Ihren neuen Code.

    Sie müssen diesen Schritt nicht ausführen, wenn Sie keinen bereits vorhandenen Anbieter zum Kopieren haben. Weitere Informationen finden Sie unter Aktualisieren eines Anbieters.