Метод 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.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | 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 |