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
推送提供程序在调用 PutClass 时必须指定此标志,以指示此类已更改。
WBEM_FLAG_UPDATE_COMPATIBLE
如果没有派生类且该类没有实例,则此标志允许更新类。 如果更改只是针对非重要限定符 ((例如 ,描述 限定符) ),则它还允许在所有情况下进行更新。 这是此调用的默认行为,用于与以前版本的 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 获取任何可用信息。
如果网络问题导致你失去与 Windows 管理的远程连接,也可能会返回特定于 COM 的错误代码。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | wbemcli.h (包括 Wbemidl.h) |
Library | 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 |