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.
  • Управление памятью
  • Обработка подсчета ссылок.

Справочник по инструментарию WMI