Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает новый класс или обновляет существующий.
Примечание
Этот интерфейс API предназначен только для внутреннего использования. Он не предназначен для использования из кода разработчика.
Синтаксис
HRESULT PutClassWmi (
[in] IWbemClassObject* pObject,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Параметры
pObject
[in] Указатель на допустимое определение класса. Он должен быть правильно инициализирован со всеми необходимыми значениями свойств.
lFlags
[in] Сочетание флагов, влияющих на поведение этой функции. Следующие значения определяются в файле заголовка WbemCli.h или их можно определить как константы в коде:
| Константа | Значение | Описание |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Если этот параметр задан, WMI не сохраняет квалификаторы с измененным вкусом. Если значение не задано, предполагается, что этот объект не локализован и все квалификаторы хранятся вместе с этим экземпляром. |
WBEM_FLAG_CREATE_OR_UPDATE |
0 | Создайте класс , если он не существует, или перезапишите его, если он уже существует. |
WBEM_FLAG_UPDATE_ONLY |
1 | Обновите класс . Класс должен существовать, чтобы вызов был успешным. |
WBEM_FLAG_CREATE_ONLY |
2 | Создайте класс . Вызов завершается ошибкой, если класс уже существует. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Флаг вызывает полусинхронный вызов. |
WBEM_FLAG_OWNER_UPDATE |
0x10000 | Поставщики push-уведомлений должны указывать этот флаг при вызове PutClassWmi , чтобы указать, что этот класс изменился. |
WBEM_FLAG_UPDATE_COMPATIBLE |
0 | Позволяет обновлять класс, если нет производных классов и экземпляров этого класса. Кроме того, он позволяет выполнять обновления во всех случаях, если изменение относится только к неважным квалификаторам, таким как квалификатор описания. Если класс имеет экземпляры или изменения относятся к важным квалификаторам, обновление завершается сбоем. |
WBEM_FLAG_UPDATE_SAFE_MODE |
0x20 | Позволяет обновлять классы, даже если есть дочерние классы, если изменение не вызывает никаких конфликтов с дочерними классами. Например, этот флаг позволяет добавить новое свойство в базовый класс, который ранее не упоминался ни в одном из дочерних классов. Если у класса есть экземпляры, обновление завершается ошибкой. |
WBEM_FLAG_UPDATE_FORCE_MODE |
0x40 | принудительно обновляет классы при наличии конфликтующих дочерних классов. Например, этот флаг вызывает обновление, если квалификатор класса определен в дочернем классе, а базовый класс пытается добавить тот же квалификатор, который конфликтует с существующим. В принудительном режиме конфликт tis разрешается путем удаления конфликтующего квалификатора в дочернем классе. |
pCtx
[in] Как правило, это значение равно null. В противном случае это указатель на экземпляр IWbemContext , который может использоваться поставщиком, предоставляющим запрошенные классы.
ppCallResult
[out] Если nullзадано значение , этот параметр не используется. Если lFlags содержит WBEM_FLAG_RETURN_IMMEDIATELY, функция возвращает немедленно с WBEM_S_NO_ERROR. Параметр ppCallResult получает указатель на новый объект IWbemCallResult .
Возвращаемое значение
Следующие значения, возвращаемые этой функцией, определяются в файле заголовка WbemCli.h или их можно определить как константы в коде:
| Константа | Значение | Описание |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | Пользователь не имеет разрешения на создание или изменение классов. |
WBEM_E_FAILED |
0x80041001 | Возникла неопределенная ошибка. |
WBEM_E_INVALID_CLASS |
0x80041010 | Задан недопустимый класс. Как правило, это означает, что pObject указывает объект экземпляра. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Недействительный параметр. |
WBEM_E_INVALID OPERATION |
0x80041016 | Недопустимое имя указанного класса. |
WBEM_E_CLASS_HAS_CHILDREN |
0x80041025 | Предпринята попытка внести изменение, которое сделает недействительным подкласс. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | Флаг WBEM_FLAG_CREATE_ONLY был указан, но класс уже существует. |
WBEM_E_NOT_FOUND |
0x80041002 |
WBEM_FLAG_UPDATE_ONLY был указан в lFlags, и класс не найден. |
WBEM_E_INCOMPLETE_CLASS |
0x80041020 | Обязательные свойства для классов заданы не все. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Недостаточно памяти для выполнения операции. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI, вероятно, остановлен и перезапущен. Снова вызовите ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Сбой связи удаленного вызова процедуры (RPC) между текущим процессом и WMI. |
WBEM_S_NO_ERROR |
0 | Вызов функции выполнен успешно. |
Комментарии
Эта функция создает оболочку для вызова метода IWbemServices::P utClass .
Пользователь не может создавать классы с именами, которые начинаются или заканчиваются символом подчеркивания.
Если вызов функции завершается сбоем, можно получить дополнительные сведения об ошибке, вызвав функцию GetErrorInfo .
Требования
Платформы: см. раздел Требования к системе.
Заголовка: WMINet_Utils.idl
платформа .NET Framework версии: доступно с версии 4.7.2.