Метод IWbemServices::P utClass (wbemcli.h)

Метод IWbemServices::P utClass создает новый класс или обновляет существующий. Класс, указанный параметром pObject , должен быть правильно инициализирован всеми необходимыми значениями свойств.

Пользователь не может создавать классы с именами, которые начинаются или заканчиваются символом подчеркивания (_). Он зарезервирован для системных классов.

Синтаксис

HRESULT PutClass(
  [in]  IWbemClassObject *pObject,
  [in]  long             lFlags,
  [in]  IWbemContext     *pCtx,
  [out] IWbemCallResult  **ppCallResult
);

Параметры

[in] pObject

Должен указывать на допустимое определение класса. Число ссылок не изменяется.

[in] lFlags

Следующие флаги влияют на поведение этого метода.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Если этот флаг установлен, WMI не сохраняет квалификаторы с измененным вкусом. Если этот флаг не задан, предполагается, что этот объект не локализован и все квалификаторы хранятся вместе с этим экземпляром.

WBEM_FLAG_CREATE_OR_UPDATE

Этот флаг вызывает создание класса, если он не существует, или перезаписывается, если он уже существует.

WBEM_FLAG_UPDATE_ONLY

Этот флаг вызывает обновление этого вызова. Класс должен существовать, чтобы вызов был успешным.

WBEM_FLAG_CREATE_ONLY

Этот флаг используется только для создания. Вызов завершается ошибкой, если класс уже существует.

WBEM_FLAG_RETURN_IMMEDIATELY

Этот флаг приводит к полусинхронному вызову. Дополнительные сведения см. в разделе Вызов метода .

WBEM_FLAG_OWNER_UPDATE

Поставщики push-уведомлений должны указывать этот флаг при вызове PutClass, чтобы указать, что этот класс изменился.

WBEM_FLAG_UPDATE_COMPATIBLE

Этот флаг позволяет обновлять класс, если нет производных классов и нет экземпляров для этого класса. Он также позволяет обновляться во всех случаях, если изменение относится только к несуществующим квалификаторам (например, квалификатор description ). Это поведение по умолчанию для этого вызова и используется для совместимости с предыдущими версиями управления Windows. Если класс имеет экземпляры или изменения относятся к важным квалификаторам, обновление завершается сбоем.

WBEM_FLAG_UPDATE_SAFE_MODE

Этот флаг позволяет обновлять классы, даже если есть дочерние классы, если изменение не вызывает конфликтов с дочерними классами. Примером обновления этого флага будет добавление нового свойства в базовый класс, который ранее не упоминался ни в одном из дочерних классов. Если у класса есть экземпляры, обновление завершается ошибкой.

WBEM_FLAG_UPDATE_FORCE_MODE

Этот флаг принудительно обновляет классы при наличии конфликтующих дочерних классов. Примером принудительного обновления этого флага будет, если квалификатор класса был определен в дочернем классе, а базовый класс пытался добавить тот же квалификатор, который конфликтует с существующим. В принудительном режиме этот конфликт будет устранен путем удаления конфликтующего квалификатора в дочернем классе.

[in] pCtx

Как правило, значение NULL. В противном случае это указатель на объект IWbemContext , необходимый поставщику динамического класса, создающего экземпляры класса. Значения в объекте контекста должны быть указаны в документации для соответствующего поставщика. Дополнительные сведения об этом параметре см. в статье Вызовы WMI.

[out] ppCallResult

Если значение NULL, этот параметр не используется. Если параметр lFlags содержит WBEM_FLAG_RETURN_IMMEDIATELY, этот вызов немедленно возвращается с WBEM_S_NO_ERROR. Параметр ppCallResult получает указатель на новый объект IWbemCallResult , который затем можно опросить для получения результата с помощью метода IWbemCallResult::GetCallStatus .

Возвращаемое значение

Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.

При сбое можно получить любые доступные сведения из функции COM GetErrorInfo.

Коды ошибок, относящихся к COM, также могут быть возвращены, если проблемы с сетью приводят к потере удаленного подключения к управлению Windows.

Примечание Непредсказуемое поведение приведет к изменению определений классов, когда они используются клиентами или поставщиками. Метод IWbemServices::P utClass следует использовать только для создания или обновления класса, если в настоящее время нет клиентов или поставщиков, использующих этот класс.
 

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemcli.h (включая Wbemidl.h)
Библиотека Wbemuuid.lib
DLL Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

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

Создание класса

IWbemCallResult

IWbemServices

Получение кода ошибки