COM API для WMI
Вы можете использовать COM-API WMI для написания клиентских приложений управления или создания нового поставщика WMI. Справочник по COM API содержит сведения для опытных системных администраторов, а также разработчиков, которые пишут клиентские и поставщики приложений.
Дополнительные сведения о создании корпоративных приложений управления WMI см. в статье Создание приложения WMI с помощью C++. Дополнительные сведения о написании поставщика WMI см. в разделе Предоставление данных в WMI.
Примечание
WMI поддерживает разработку только на C++, используя Microsoft Visual C++ систем разработки версии 6.0 и более поздних версий. Однако можно также использовать другие компиляторы, например компиляторы из Borland и Watcom.
Каждый из различных объектов WMI наследуется от интерфейса, унаследованного от интерфейса IUnknown . COM определяет, как реализующие объекты или интерфейсы обрабатывают такие задачи, как управление памятью, управление параметрами и многопоточность. В соответствии с COM API COM для WMI гарантируется, что он поддерживает функциональные возможности, предоставляемые интерфейсами каждого объекта WMI.
Доступ к инструментарию WMI осуществляется через следующие интерфейсы COM для WMI.
Интерфейс | Описание |
---|---|
IEnumWbemClassObject | Перечислитель, работающий с объектами типа IWbemClassObject. Он аналогичен стандартным перечислителям COM, таким как IEnumVariant. |
IMofCompiler | Этот интерфейс, реализованный Mofd.dll, предоставляет COM-интерфейс, который используется компилятором MOF и любыми другими приложениями, которые компилируют MOF-файлы. |
IUnsecuredApartment | Используется для упрощения процесса выполнения асинхронных вызовов из клиентского процесса. |
IWbemBackupRestore | Выполняет резервное копирование и восстановление содержимого репозитория WMI. |
IWbemCallResult | Используется для полусинхронных вызовов интерфейса IWbemServices . При выполнении таких вызовов вызываемый метод IWbemServices немедленно возвращается вместе с объектом IWbemCallResult . |
IWbemCausalityAnalysis | Отслеживает дочерние запросы, созданные на основе родительского запроса. |
IWbemClassObject | Содержит определения классов и экземпляры объектов класса и управляет ими. Разработчикам не нужно реализовывать этот интерфейс; WMI обеспечивает его реализацию. |
IWbemConfigureRefresher | Используется клиентским кодом для добавления или удаления перечислителей, объектов и вложенных программ обновления в средство обновления. |
IWbemContext | При необходимости используется для передачи дополнительных контекстных сведений поставщикам при отправке вызовов IWbemServices в управление Windows. |
IWbemDecoupledBasicEventProvider | Регистрирует несвязанные поставщики с помощью инструментария WMI. |
IWbemDecoupledRegistrar | Связывает несвязанные поставщики с WMI. Этот интерфейс позволяет поставщику, размещенного в процессе, определить время существования взаимодействия интерфейса и сосуществовать с другими поставщиками. |
IWbemEventConsumerProvider | Предоставляет основной интерфейс для поставщика потребителя событий. С помощью этого интерфейса и метода FindConsumer поставщик потребителей событий может указать, какие потребители событий должны получать данное событие. |
IWbemEventProvider | Используется для инициации связи с поставщиком событий. |
IWbemEventProviderQuerySink | При необходимости реализуется поставщиками событий, которые хотят знать, какие типы фильтров запросов событий активны в настоящее время для оптимизации производительности. |
IWbemEventProviderSecurity | При необходимости реализуется поставщиками событий, которые хотят ограничить доступ потребителей к своему событию. |
IWbemEventSink | Инициирует обмен данными с поставщиком событий, используя ограниченный набор запросов. Этот интерфейс расширяет возможности IWbemObjectSink, предоставляя новые методы, связанные с безопасностью и производительностью. |
IWbemHiPerfProvider | Позволяет поставщикам предоставлять обновляемые объекты и перечислители. |
IWbemHiPerfEnum | Используется в операциях обновления для обеспечения быстрого доступа к перечислениям объектов экземпляров. |
IWbemLocator | Получает начальный указатель пространства имен на интерфейс IWbemServices для инструментария WMI на определенном хост-компьютере. |
IWbemObjectAccess | Предоставляет доступ к методам и свойствам объекта . Объект IWbemObjectAccess — это контейнер для экземпляра, обновляемого с помощью средства обновления. |
IWbemObjectSink | Используется для получения как результатов IWbemServices , так и определенных типов уведомлений о событиях. |
IWbemObjectTextSrc | Используется для преобразования экземпляров IWbemClassObject в различные текстовые форматы и из нее. |
IWbemPropertyProvider | Поддерживает получение и обновление отдельных свойств в экземпляре класса WMI. |
IWbemProviderIdentity | Реализуется поставщиком событий, если поставщик регистрируется с использованием нескольких имен (несколько экземпляров __Win32Provider) с одним и тем же значением CLSID . Класс предоставляет механизм для различения именованного поставщика, который следует использовать. |
IWbemProviderInit | Используется для инициализации поставщиков. |
IWbemProviderInitSink | Реализуется инструментарием WMI и вызывается поставщиками для отчета о состоянии инициализации. |
IWbemQualifierSet | Действует как контейнер для всего набора именованных квалификаторов для одного свойства или всего объекта (класса или экземпляра). |
IWbemQuery | Предоставляет точку входа, с помощью которой можно проанализировать запрос WMI Query Language (WQL). |
IWbemRefresher | Предоставляет точку входа, с помощью которой можно обновлять обновляемые объекты, такие как перечислители или объекты средства обновления. |
IWbemServices | Используется клиентами и поставщиками для доступа к службам WMI. Интерфейс реализуется только инструментарием WMI и является основным интерфейсом WMI. |
IWbemStatusCodeText | Извлекает текстовые строковые описания кодов ошибок или имя подсистемы, в которой произошла ошибка. |
IWbemUnboundObjectSink | Реализуется всеми потребителями логических событий. Это простой интерфейс приемника, который принимает доставку объектов событий. |
Примечание
Многие функции WMI COM возвращают числовые коды ошибок, которые задокументированы как именованные константы. Эти константы определяются в Wbemcli.h в папке PSDK WMI\Include. Дополнительные сведения см. в разделе Коды возврата WMI.
Дополнительные сведения о следующих темах, посвященных программированию COM, см. в разделе Разработка компонентов:
- Интерфейсы и проектирование объектов.
- Реализация IUnknown.
- Управление памятью
- Обработка подсчета ссылок.
Связанные темы