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 |
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für