Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает или обновляет экземпляр существующего класса. Экземпляр записывается в репозиторий WMI.
Замечание
Этот API предназначен только для внутреннего использования. Он не предназначен для использования из кода разработчика.
Синтаксис
HRESULT PutInstanceWmi (
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Параметры
pInst
[in] Указатель на экземпляр, который нужно записать.
lFlags
[in] Сочетание флагов, влияющих на поведение этой функции. Следующие значения определяются в файле заголовка WbemCli.h или можно определить их как константы в коде:
| Постоянный | Ценность | Description |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Если задано, WMI не сохраняет квалификаторы со вкусом Amended . Если этот объект не задан, предполагается, что этот объект не локализован, а все квалификаторы хранятся с этим экземпляром. |
WBEM_FLAG_CREATE_OR_UPDATE |
0 | Создайте экземпляр, если он не существует, или перезаписать его, если он уже существует. |
WBEM_FLAG_UPDATE_ONLY |
1 | Обновите экземпляр. Экземпляр должен существовать для успешного вызова. |
WBEM_FLAG_CREATE_ONLY |
2 | Создайте экземпляр. Вызов завершается ошибкой, если экземпляр уже существует. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Флаг вызывает полусинхронный вызов. |
pCtx
[in] Как правило, это значение равно null. В противном случае это указатель на экземпляр IWbemContext , который может использоваться поставщиком, предоставляющим запрошенные классы.
ppCallResult
[out] Если nullэтот параметр не используется. Если lFlags он WBEM_FLAG_RETURN_IMMEDIATELYсодержит, функция возвращается немедленно.WBEM_S_NO_ERROR Параметр ppCallResult получает указатель на новый объект IWbemCallResult .
Возвращаемое значение
Следующие значения, возвращаемые этой функцией, определяются в файле заголовка WbemCli.h или можно определить их как константы в коде:
| Постоянный | Ценность | Description |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | У пользователя нет разрешения на обновление экземпляра указанного класса. |
WBEM_E_FAILED |
0x80041001 | Произошла неопределенная ошибка. |
WBEM_E_INVALID_CLASS |
0x80041010 | Класс, поддерживающий этот экземпляр, недопустим. |
WBEM_E_ILLEGAL_NULL |
0x80041028 | для null свойства, которое не может бытьnull, например для свойства, помеченного квалификатором или Not_Null квалификаторомIndexed. |
WBEM_E_INVALID_OBJECT |
0x8004100f | Указанный экземпляр недопустим. (Например, вызов PutInstanceWmi с классом возвращает это значение.) |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Недопустимый параметр. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | Был WBEM_FLAG_CREATE_ONLY указан флаг, но экземпляр уже существует. |
WBEM_E_NOT_FOUND |
0x80041002 |
WBEM_FLAG_UPDATE_ONLY указан в lFlags, но экземпляр не существует. |
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 utInstance .
Функция PutInstanceWmi поддерживает создание экземпляров и обновление только экземпляров существующих классов. В зависимости от того, как pCtx задан параметр, обновляются некоторые или все свойства экземпляра.
Когда экземпляр, на который указывает pInst , принадлежит подклассу, управление Windows вызывает всех поставщиков, ответственных за классы, от которых производный подкласс. Все эти поставщики должны успешно выполнить исходный PutInstanceWmi запрос. Поставщик, поддерживающий самый верхний класс в иерархии, называется первым. Порядок вызовов продолжается с подклассом самого верхнего класса и продолжается сверху вниз pInstдо тех пор, пока управление Windows не достигнет поставщика для класса, на который указывает экземпляр.
Управление Windows не вызывает поставщиков для любого дочернего класса экземпляра.
Когда приложение должно обновить экземпляр, принадлежащий иерархии классов, pInst параметр должен указывать на экземпляр, содержащий свойства, которые необходимо изменить. То есть рассмотрим целевой экземпляр, принадлежащий ClassB. Экземпляр ClassB является производным от ClassA и ClassA определяет свойство PropA. Если приложение хочет внести изменения в значение PropA экземпляра ClassB , оно должно иметь pInst значение этого экземпляра, а не экземпляр ClassA.
Вызов PutInstanceWmi экземпляра абстрактного класса не допускается.
Если вызов функции завершается ошибкой, можно получить дополнительные сведения об ошибке, вызвав функцию GetErrorInfo .
Требования
Платформы: см. раздел Требования к системе.
Заголовок: WMINet_Utils.idl
Версии .NET Framework: Доступно с версии 4.7.2