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_ERRORppCallResult 參數會接收新 IWbemCallResult 物件的指標,然後可以使用 IWbemCallResult::GetCallStatus 方法輪詢以取得結果。

傳回值

這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 HRESULT 中包含的值。

失敗時,您可以從 COM 函式 GetErrorInfo 取得任何可用資訊。

如果網路問題造成您失去 Windows 管理遠端連線,也可能傳回 COM 特定的錯誤碼。

注意 如果您在用戶端或提供者正在使用類別定義時變更類別定義,將會導致無法預期的行為。 IWbemServices::P utClass 方法只有在目前沒有用戶端或提供者目前使用 類別時,才應該用來建立或更新類別。
 

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 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

擷取錯誤碼