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.
Zugehörige Themen