Поделиться через


Интерфейс IWbemContext (wbemcli.h)

Интерфейс IWbemContext при необходимости используется для передачи дополнительных контекстных сведений поставщикам при отправке вызовов IWbemServices в WMI. Все основные вызовы в IWbemServices принимают необязательный параметр, указывающий на объект этого типа.

Наследование

Интерфейс IWbemContext наследуется от интерфейса IUnknown . IWbemContext также имеет следующие типы элементов:

Методы

Интерфейс IWbemContext содержит следующие методы.

 
IWbemContext::BeginEnumeration

Метод IWbemContext::BeginEnumeration сбрасывает перечисление всех значений контекста в объекте .
IWbemContext::Clone

Метод IWbemContext::Clone создает логическую копию текущего объекта IWbemContext. Этот метод может быть полезен, если необходимо выполнить много вызовов, которые имеют практически идентичные объекты IWbemContext.
IWbemContext::D eleteAll

Метод IWbemContext::D eleteAll удаляет все именованные значения контекста из текущего объекта, тем самым очищая объект .
IWbemContext::D eleteValue

Метод IWbemContext::D eleteValue удаляет именованное значение контекста, созданное IWbemContext::SetValue.
IWbemContext::EndEnumeration

Метод IWbemContext::EndEnumeration завершает последовательность перечисления, которая начинается с IWbemContext::BeginEnumeration. Этот вызов не является обязательным, но он освобождает как можно раньше все системные ресурсы, связанные с перечислением .
IWbemContext::GetNames

Метод IWbemContext::GetNames возвращает структуру SAFEARRAY всех именованных значений контекста.
IWbemContext::GetValue

Метод IWbemContext::GetValue используется для получения определенного именованного значения контекста по имени.
IWbemContext::Next

Метод IWbemContext::Next извлекает следующее значение в перечислении всех значений контекста, начиная с IWbemContext::BeginEnumeration.
IWbemContext::SetValue

Метод IWbemContext::SetValue создает или перезаписывает именованное значение контекста.

Комментарии

Часто динамическим поставщикам требуется больше сведений, чем указано в обычных параметрах метода IWbemServices . Например, для управления любыми объектами схемы WMI, которые он предоставляет, поставщику может потребоваться знать имя сообщества SNMP или имя базы данных язык SQL (SQL) и таблицы. Клиент может добавить эти сведения в объект IWbemContext и отправить объект IWbemContext вместе с вызовом в качестве одного из параметров.

Поставщики должны использовать объекты содержимого экономно. Рекомендуется, чтобы это никогда не требовалось. Если поставщику требуется большой объем строго конкретных контекстных сведений для ответа на запрос, то все клиенты должны быть закодированы для предоставления этой информации, что нарушает единую модель доступа, которая является основой WMI. Тем не менее, в некоторых случаях этого не удастся избежать. Таким образом, этот механизм предоставляется для предоставления доступа к таким поставщикам. Разработчики таких поставщиков должны предоставлять соответствующую документацию, чтобы разработчики клиентского программного обеспечения могли успешно управлять такими объектами CIM.

Поставщики, поддерживающие использование IWbemContext для предоставления клиентам возможности указывать дополнительные сведения в запросе, должны ограничить типы значений, которые они поддерживают, до типов из следующего списка:

  • VT_I4
  • VT_R8
  • VT_BOOL
  • VT_BSTR
  • VT_UNKNOWN
  • Любой из приведенных выше сочетаний с VT_ARRAY
Примечание Маршалирование методов IUnknown в экземпляре IWbemContext с помощью варианта типа VT_UNKNOWN могут выполнять только объекты, поддерживающие IWbemClassObject.
 
Объект IWbemContext , созданный с помощью CoCreateInstanceEx, представляет собой простой контейнер именованных значений. Доступ к этим методам для заполнения контекстных сведений, необходимых динамическому поставщику. После вызова одного из методов IWbemServices объект IWbemContext можно повторно использовать для другого вызова или освободить его с помощью Release и другого объекта, созданного для других вызовов методов IWbemServices .

Сведения, содержащиеся в объекте IWbemContext , полностью определяются базовым поставщиком. WMI не использует эти сведения, а пересылает их поставщику. Поставщики должны публиковать контекстные сведения, необходимые для этих запросов на обслуживание.

Клиентское приложение вызывает CoCreateInstanceEx для создания одного объекта контекста. Затем он вызывает SetValue один или несколько раз, чтобы настроить значения контекста для поставщика. Наконец, он отправляет объект в один из методов IWbemServices , который немедленно вызывает Release для объекта контекста после возврата вызова. Другие методы предназначены главным образом для поставщиков, которые получают объект контекста и должны извлекать сведения.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemcli.h (включая Wbemidl.h)

См. также раздел

COM API для WMI

Создание и объявление экземпляра с помощью C++

Вызовы WMI

Запрос данных WMI на 64-разрядной платформе

Получение части экземпляра WMI