COM-API für WMI
Sie können die WMI-Component Object Model-API (COM) verwenden, um Verwaltungsclientanwendungen zu schreiben oder einen neuen WMI-Anbieter zu erstellen. Die COM-API-Referenz enthält Informationen für fortgeschrittene Systemadministratoren sowie für Entwickler, die Client- und Anbieteranwendungen schreiben.
Weitere Informationen zum Schreiben von WMI-Unternehmensverwaltungsanwendungen finden Sie unter Erstellen einer WMI-Anwendung mit 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 mit Microsoft Visual C++ Version 6.0 und höher von Entwicklungssystemen. Sie können jedoch auch andere Compiler verwenden, z. B. die von Borland undCom.
Jedes der verschiedenen WMI-Objekte erbt von einer Schnittstelle, die letztendlich von der IUnknown-Schnittstelle geerbt wurde. COM bestimmt, wie Objekt-Implementierer 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 der einzelnen WMI-Objekte bereitgestellt wird.
Der Zugriff auf WMI erfolgt über die folgenden WMI-spezifischen COM-Schnittstellen.
| Schnittstelle | BESCHREIBUNG |
|---|---|
| IEnumWbemClassObject | Enumerator, der mit Objekten des Typs IWbemClassObject funktioniert. Sie ähnelt COM-Standardenumeratoren, z. B. IEnumVariant. |
| IMofCompiler | Durch Mofd.dll implementiert, stellt diese Schnittstelle eine COM-Schnittstelle bereit, die vom MOF-Compiler und allen anderen Anwendungen verwendet wird, die MOF-Dateien kompilieren. |
| IUnsecuredApartment | Wird verwendet, um den Prozess asynchroner Aufrufe von einem Clientprozess zu vereinfachen. |
| IWbemBackupRestore | Sichern und Wiederherstellen des Inhalts des WMI-Repositorys. |
| IWbemCallResult | Wird für semisynchrone Aufrufe der IWbemServices-Schnittstelle verwendet. Bei solchen Aufrufen gibt die aufgerufene IWbemServices-Methode sofort zusammen mit einem IWbemCallResult-Objekt zurück. |
| IWbemCausalityAnalysis | Verfolgt untergeordnete Anforderungen nach, die aus einer übergeordneten Anforderung generiert werden. |
| IWbemClassObject | Enthält und bearbeitet sowohl Klassendefinitionen als auch Klassenobjektinstanzen. Entwickler müssen diese Schnittstelle nicht implementieren. WMI bietet seine Implementierung. |
| IWbemConfigureRefresher | Wird vom Clientcode zum Hinzufügen oder Entfernen von Enumeratoren, Objekten und geschachtelten Aktualisierungen zu einer Auffrischung verwendet. |
| IWbemContext | Wird optional verwendet, um zusätzliche Kontextinformationen an Anbieter zu übermitteln, wenn IWbemServices-Aufrufe an Windows werden. |
| IWbemDeabapledBasicEventProvider | Registriert entkoppelte Anbieter bei WMI. |
| IWbemDeregistrpledRegistrar | Ordnet entkoppelte Anbieter WMI zu. Diese Schnittstelle ermöglicht es einem prozessge gehosteten Anbieter, die Interoperabilitätsdauer der Schnittstelle zu definieren und mit anderen Anbietern zusammen zu sein. |
| IWbemEventConsumerProvider | Stellt die primäre Schnittstelle für einen Ereignisverbraucheranbieter 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 von Ereignisanbietern implementiert, die wissen möchten, welche Arten von Ereignisabfragefiltern derzeit aktiv sind, um die Leistung zu optimieren. |
| IWbemEventProviderSecurity | Wird optional von Ereignisanbietern implementiert, die den Consumerzugriff auf ihr Ereignis einschränken möchten. |
| IWbemEventSink | Initiiert die Kommunikation mit einem Ereignisanbieter mithilfe eines eingeschränkten Satz von Abfragen. Diese Schnittstelle erweitert IWbemObjectSinkund stellt neue Methoden für Sicherheit und Leistung bereit. |
| IWbemHiPerfProvider | Ermöglicht Es Anbietern, auffrischbare Objekte und Enumeratoren zu liefern. |
| IWbemHiPerfEnum | Wird in Aktualisierungsvorgängen verwendet, um schnellen Zugriff auf Enumerationen von Instanzobjekten zu ermöglichen. |
| IWbemLocator | Erhält den anfänglichen Namespacezeiger auf die IWbemServices-Schnittstelle für WMI auf einem bestimmten Hostcomputer. |
| IWbemObjectAccess | Ermöglicht den Zugriff auf die Methoden und Eigenschaften eines Objekts. Ein IWbemObjectAccess-Objekt ist ein Container für eine -Instanz, die durch eine 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)mit demselben CLSID-Wert registriert. Die -Klasse stellt einen Mechanismus zur Unterscheidung dar, welcher benannte Anbieter verwendet werden soll. |
| IWbemProviderInit | Wird zum Initialisieren von Anbietern verwendet. |
| IWbemProviderInitSink | Wird von WMI implementiert und von Anbietern aufgerufen, um den 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 zur Analyse einer WMI Query Language (WQL) zur Seite. |
| IWbemRefresher | Stellt einen Einstiegspunkt dar, über den aktualisierungsfähige 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 Textzeichenfolgenbeschreibungen von Fehlercodes oder den Namen des Subsystems, in dem der Fehler aufgetreten ist. |
| IWbemUnboundObjectSink | Wird von allen logischen Ereignisverbrauchern implementiert. 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 für die COM-Programmierung finden Sie unter Komponentenentwicklung:
- Schnittstellen und Objektentwurf.
- Implementieren von IUnknown.
- Speicherverwaltung
- Verarbeitung der Verweiszählung.