Freigeben über


Implementieren der Hochleistungsschnittstelle

Da WMI einen leistungsfähigen Anbieter in einem Prozess in WMI oder einer Clientanwendung lädt, müssen Sie Ihren Hochleistungsanbieter als In-Process-Server entwerfen. Darüber hinaus müssen Sie die Hochleistungsanbietermethoden in den Schnittstellen IWbemHiPerfProvider und IWbemRefresher implementieren.

Sie müssen einen Hochleistungsanbieter als In-Process-Server implementieren. Ein Feature, das Sie bei der Implementierung der Sicherheit eines In-Process-Servers berücksichtigen sollten, ist, wie der Anbieter seinen eigenen Standort identifiziert. Beim prozessinternen Laden in WMI instanziiert WMI den Anbieter mithilfe einer CLSID. Beim prozessinternen Laden in eine Clientanwendung instanziiert die Clientanwendung den Anbieter mit der ClientLoadableCLSID-Eigenschaft. Indem Sie einer CLSID und ClientLoadableCLSID unterschiedliche Werte geben, können Sie dem Anbieter ermöglichen, ermitteln, ob das Laden in WMI oder in eine Clientanwendung erfolgt. Wenn der Ladevorgang in einem WMI-Prozess stattfindet, sollte der Anbieter alle erforderlichen Clientidentitätswechsel mithilfe von ClientLoadableCLSID ausführen. Bei einem Clientprozess, übernimmt der Anbieter das Zugriffstoken des Threads, für den er aufgerufen wird. Weitere Informationen zum Implementieren eines In-Process-Servers finden Sie in der Component Object Model (COM)-Dokumentation.

Als In-Process-Server verwendet ein Hochleistungsanbieter ein Aktualisierungsobjekt, um Daten für den Remoteclient aktuell zu halten. In der folgenden Tabelle sind Methoden aufgeführt, die Sie für einen Hochleistungsanbieter implementieren müssen.

Methode Funktion
IWbemHiPerfProvider::QueryInstances Abfragen
IWbemHiPerfProvider::GetObjects Objektabruf
IWbemHiPerfProvider::CreateRefresher Erstellt eine Aktualisierungsfunktion
IWbemHiPerfProvider::CreateRefreshableObject Erstellt ein aktualisierbares Instanzobjekt
IWbemHiPerfProvider::CreateRefreshableEnum Erstellt einen aktualisierbaren Enumerator
IWbemHiPerfProvider::StopRefreshing Beendet das Aktualisieren eines Enumerator- oder Instanzobjekts
IWbemRefresher::Refresh Erstellt eine Aktualisierungsfunktion

 

Erstellen eines Instanzanbieters in einem Hochleistungsanbieter