COM API для WMI
API компонента WMI (COM) можно использовать для записи клиентских приложений управления или созданияпоставщика WMI. Справочник по COM API предоставляет сведения для расширенных системных администраторов, а также разработчиков, которые пишут клиентские и поставщики приложений.
Дополнительные сведения о написании корпоративных приложений управления WMI см. в создании приложения WMI с помощьюC++. Дополнительные сведения о написании поставщика WMI см. в предоставлении данныхWMI.
Заметка
WMI поддерживает только разработку C++ с помощью систем разработки Microsoft Visual C++ версии 6.0 и более поздних версий. Однако вы также можете использовать другие компиляторы, такие как Борланд и 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 | Реализуется поставщиком событий, если поставщик регистрируется с помощью нескольких name (несколько экземпляров __Win32Provider) с одинаковым значением CLSID. Класс предоставляет механизм для различения именованного поставщика. |
IWbemProviderInit | Используется для инициализации поставщиков. |
IWbemProviderInitSink | Реализуется WMI и вызывается поставщиками, чтобы сообщить о состоянии инициализации. |
IWbemQualifierSet | Выступает в качестве контейнера для всего набора именованных квалификаторов для одного свойства или всего объекта (класса или экземпляра). |
IWbemQuery | Предоставляет точку входа, с помощью которой можно проанализировать язык запросов WMI (WQL). |
IWbemRefresher | Предоставляет точку входа, с помощью которой можно обновить объекты, такие как перечислители или объекты обновления, можно обновить. |
IWbemServices | Используется клиентами и поставщиками для доступа к службам WMI. Интерфейс реализуется только WMI и является основным интерфейсом WMI. |
IWbemStatusCodeText | Извлекает текстовое описание кодов ошибок или имя подсистемы, в которой произошла ошибка. |
IWbemUnboundObjectSink | Реализовано всеми потребителями логических событий. Это простой интерфейс приемника, который принимает доставку объектов событий. |
Заметка
Многие функции COM WMI возвращают числовые коды ошибок, которые документируются как именованные константы. Эти константы определены в Wbemcli.h в папке WMI\Include PSDK. Дополнительные сведения см. в кодов возврата WMI.
Дополнительные сведения о следующих разделах программирования COM см. в разделе Разработка компонентов:
- Интерфейсы и конструктор объектов.
- Реализация IUnknown.
- Управление памятью
- Обработка подсчета ссылок.
Связанные разделы