COM-API für WMI

Sie können die WMI-COM (Component Object Model)-API verwenden, um Verwaltungs-Clientanwendungen zu schreiben oder einen neuen WMI-Anbieter zu erstellen. Die COM-API-Referenz enthält Informationen für erweiterte Systemadministratoren sowie Entwickler bzw. Entwicklerinnen, die Client- und Anbieteranwendungen schreiben.

Weitere Informationen zum Schreiben von WMI-Unternehmensverwaltungsanwendungen finden Sie unter Erstellen einer WMI-Anwendung mithilfe von C++. Weitere Informationen zum Schreiben eines WMI-Anbieters finden Sie unter Bereitstellen von Daten für WMI.

Hinweis

WMI unterstützt nur die C++-Entwicklung mithilfe von Microsoft Visual C++ Version 6.0 und höheren Entwicklungssystemen. Sie können jedoch auch andere Compiler wie die von Borland und Watcom verwenden.

 

Jedes der verschiedenen WMI-Objekte erbt von einer Schnittstelle, die letztendlich von der IUnknown-Schnittstelle geerbt wird. COM schreibt vor, wie Objektimplementierer oder Schnittstellen Aufgaben wie Speicherverwaltung, Parameterverwaltung und Multithreading verarbeiten. Durch die Konformität mit COM stellt die COM-API für WMI sicher, dass sie die Funktionalität unterstützt, die von den Schnittstellen jedes WMI-Objekts bereitgestellt wird.

Der Zugriff auf WMI erfolgt über die folgenden WMI-spezifischen COM-Schnittstellen.

Interface BESCHREIBUNG
IEnumWbemClassObject Enumerator, der mit Objekten des Typs IWbemClassObject arbeitet. Er ähnelt standardmäßigen COM-Enumeratoren, z. B. IEnumVariant.
IMofCompiler Diese von Mofd.dll implementierte Schnittstelle stellt eine COM-Schnittstelle bereit, die vom MOF-Compiler und allen anderen Anwendungen verwendet wird, die MOF-Dateien kompilieren.
IUnsecuredApartment Wird verwendet, um den Prozess des Ausführens asynchroner Aufrufe von einem Clientprozess zu vereinfachen.
IWbemBackupRestore Sichert den Inhalt des WMI-Repositorys und stellt ihn wieder her.
IWbemCallResult Wird für semisynchrone Aufrufe der IWbemServices-Schnittstelle verwendet. Bei solchen Aufrufen gibt die aufgerufene IWbemServices-Methode sofort eine Antwort zusammen mit einem IWbemCallResult-Objekt zurück.
IWbemCausalityAnalysis Verfolgt untergeordnete Anforderungen, die aus einer übergeordneten Anforderung generiert werden.
IWbemClassObject Enthält und bearbeitet sowohl Klassendefinitionen als auch Klassenobjektinstanzen. Entwickler bzw. Entwicklerinnen müssen diese Schnittstelle nicht implementieren. WMI stellt ihre Implementierung bereit.
IWbemConfigureRefresher Wird von Clientcode verwendet, um Enumeratoren, Objekte und geschachtelte Aktualisierungen zu einer Aktualisierung hinzuzufügen oder daraus zu entfernen.
IWbemContext Wird optional verwendet, um Anbietern zusätzliche Kontextinformationen zu übermitteln, wenn IWbemServices-Aufrufe an die Windows-Verwaltung übermittelt werden.
IWbemDecoupledBasicEventProvider Registriert entkoppelte Anbieter bei WMI.
IWbemDecoupledRegistrar Verknüpft entkoppelte Anbieter mit WMI. Diese Schnittstelle ermöglicht es einem prozessgehosteten Anbieter, die Interoperabilitätsdauer der Schnittstelle zu definieren und mit anderen Anbietern zu koexistieren.
IWbemEventConsumerProvider Stellt die primäre Schnittstelle für einen Ereignisconsumeranbieter bereit. Über diese Schnittstelle und die FindConsumer-Methode kann ein Ereignisconsumeranbieter angeben, welche Ereignisconsumer ein bestimmtes Ereignis empfangen sollen.
IWbemEventProvider Wird verwendet, um die Kommunikation mit einem Ereignisanbieter zu initiieren.
IWbemEventProviderQuerySink Optional implementiert von Ereignisanbietern, die wissen möchten, welche Arten von Ereignisabfragefiltern derzeit aktiv sind. So soll die Leistung optimiert werden.
IWbemEventProviderSecurity Optional implementiert von Ereignisanbietern, die den Consumerzugriff auf ihr Ereignis einschränken möchten.
IWbemEventSink Initiiert die Kommunikation mit einem Ereignisanbieter mithilfe eines eingeschränkten Abfragesatzes. Diese Schnittstelle erweitert IWbemObjectSink und bietet neue Methoden für Sicherheit und Leistung.
IWbemHiPerfProvider Ermöglicht es Anbietern, aktualisierbare Objekte und Enumeratoren zur Verfügung zu stellen.
IWbemHiPerfEnum Wird in Aktualisierungsvorgängen verwendet, um schnellen Zugriff auf Enumerationen von Instanzenobjekten zu ermöglichen.
IWbemLocator Ruft den anfänglichen Namespacezeiger auf die IWbemServices-Schnittstelle für WMI auf einem bestimmten Hostcomputer ab.
IWbemObjectAccess Bietet Zugriff auf die Methoden und Eigenschaften eines Objekts. Ein IWbemObjectAccess-Objekt ist ein Container für eine Instanz, die von einer Aktualisierung aktualisiert wird.
IWbemObjectSink Wird verwendet, um sowohl die Ergebnisse von IWbemServices als auch bestimmte Arten von Ereignisbenachrichtigungen zu empfangen.
IWbemObjectTextSrc Wird verwendet, um IWbemClassObject-Instanzen in und aus unterschiedlichen Textformaten zu übersetzen.
IWbemPropertyProvider Unterstützt das Abrufen und Aktualisieren einzelner Eigenschaften in einer Instanz einer WMI-Klasse.
IWbemProviderIdentity Wird von einem Ereignisanbieter implementiert, wenn sich der Anbieter mit mehr als einem Namen (mehrere Instanzen von __Win32Provider) und mit demselben CLSID-Wert registriert. Die Klasse bietet einen Mechanismus zur Unterscheidung, welcher benannte Anbieter verwendet werden soll.
IWbemProviderInit Wird verwendet, um Anbieter zu initialisieren.
IWbemProviderInitSink Wird von WMI implementiert und von Anbietern aufgerufen, um Initialisierungsstatus zu melden.
IWbemQualifierSet Fungiert als Container für den gesamten Satz benannter Qualifizierer für eine einzelne Eigenschaft oder ein gesamtes Objekt (eine Klasse oder Instanz).
IWbemQuery Stellt einen Einstiegspunkt bereit, über den eine WMI-Abfragesprache (WQL) analysiert werden kann.
IWbemRefresher Stellt einen Einstiegspunkt bereit, über den aktualisierbare Objekte wie Enumeratoren oder Aktualisierungsobjekte aktualisiert werden können.
IWbemServices Wird von Clients und Anbietern für den Zugriff auf WMI-Dienste verwendet. Die Schnittstelle wird nur von WMI implementiert und ist die primäre WMI-Schnittstelle.
IWbemStatusCodeText Extrahiert Textzeichenfolgen-Beschreibungen von Fehlercodes oder den Namen des Subsystems, in dem der Fehler aufgetreten ist.
IWbemUnboundObjectSink Implementiert von allen logischen Ereignisconsumern. Es handelt sich um eine einfache Senkenschnittstelle, die die Übermittlung von Ereignisobjekten akzeptiert.

 

Hinweis

Viele der WMI-COM-Funktionen geben numerische Fehlercodes zurück, die als benannte Konstanten dokumentiert sind. Diese Konstanten werden in „Wbemcli.h“ im Ordner „PSDK WMI\Include“ definiert. Weitere Informationen finden Sie unter WMI-Rückgabecodes.

 

Weitere Informationen zu den folgenden Themen zur COM-Programmierung finden Sie unter Komponentenentwicklung:

  • Schnittstellen und Objektentwurf.
  • Implementieren von IUnknown.
  • Speicherverwaltung
  • Behandeln der Verweiszählung.

WMI-Referenz