Интерфейс 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
Примечание Только объекты, поддерживающие IWbemClassObject , могут маршалал свои методы IUnknown в экземпляре IWbemContext с помощью варианта типа VT_UNKNOWN.
 
Объект IWbemContext , созданный с помощью CoCreateInstanceEx, является простым контейнером именованных значений. Доступ к этим методам для заполнения сведений о контексте, необходимых динамическому поставщику. После вызова одного из методов IWbemServices объект IWbemContext можно повторно использовать для другого вызова или освободить его с помощью Release и другого объекта, созданного для других вызовов методов IWbemServices .

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

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

Требования

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

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

COM API для WMI

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

Вызовы WMI

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

Извлечение части экземпляра WMI