Freigeben über


Implementieren der Hochleistungsschnittstelle

Da WMI einen hochleistungsorientierten Anbieter während des Prozesses in WMI oder eine Clientanwendung lädt, müssen Sie Ihren Hochleistungsanbieter als Prozessserver entwerfen. Darüber hinaus müssen Sie die Hochleistungsanbietermethoden in die Schnittstellen IWbemHiPerfProvider und IWbemRefresher implementieren.

Sie sollten einen Hochleistungsanbieter als prozessinternen Server implementieren. Ein Feature, das Sie beim Implementieren der Sicherheit eines prozessinternen Servers beachten sollten, ist die Identifizierung des eigenen Standorts durch den Anbieter. Wenn WMI prozessintern in WMI geladen wird, 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 einer ClientLoadableCLSID unterschiedliche Werte zuordnen, erlauben Sie dem Anbieter zu bestimmen, ob sie prozessintern in WMI oder in eine Clientanwendung geladen wird. Wenn sie sich in einem WMI-Prozess befindet, sollte der Anbieter alle erforderlichen Clientidentitätswechsel mithilfe von ClientLoadableCLSID durchführen. Wenn sie sich in einem Clientprozess befindet, erbt der Anbieter das Zugriffstoken des Threads, für den er aufgerufen wird. Weitere Informationen zum Implementieren eines prozessinternen Servers finden Sie im COM-Abschnitt von MSDN.

Als prozessinterner Server verwendet ein Hochleistungsanbieter ein Aktualisierungsobjekt, um die Daten für den Remoteclient auf dem neuesten Stand 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 ein Aktualisierungsprogramm
IWbemHiPerfProvider::CreateRefreshableObject Erstellt ein aktualisierbares Instanz-Objekt
IWbemHiPerfProvider::CreateRefreshableEnum Erstellt einen auffrischbaren Enumerator
IWbemHiPerfProvider::StopRefreshing Beendet das Aktualisieren eines Enumerators oder Instanz-Objekts
IWbemRefresher::Refresh Erstellt ein Aktualisierungsprogramm

 

Umwandeln eines Instanzanbieters in einen Hochleistungsanbieter