PutClassWmi 函式
建立新類別或更新現有類別。
注意
此 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 | 呼叫 PutClassWmi 時,推送提供者必須指定此旗標,以指出此類別已變更。 |
WBEM_FLAG_UPDATE_COMPATIBLE |
0 | 如果沒有任何衍生類別且該類別沒有執行個體,則允許更新類別。 如果只是不重要的限定詞發生變更 (例如描述限定詞),也可允許所有情況下的更新。 如果類別具有執行個體或重要限定詞發生變更,則更新會失敗。 |
WBEM_FLAG_UPDATE_SAFE_MODE |
0x20 | 即使有子類別,只要變更不會與子類別發生任何衝突,仍允許更新類別。 例如,此旗標允許將新屬性新增至先前未在任何子類別中提及的基底類別。 如果類別有執行個體,更新就會失敗。 |
WBEM_FLAG_UPDATE_FORCE_MODE |
0x40 | 存在衝突的子類別時,強制更新類別。 例如,如果類別限定詞是在子類別中定義,而且基底類別嘗試新增與現有限定詞衝突的相同限定詞,則此旗標會強制進行更新。 在強制模式中,此衝突會藉由刪除子類別中的衝突限定詞來解決。 |
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 | 已在 lFlags 中指定 WBEM_FLAG_UPDATE_ONLY ,而且找不到類別。 |
WBEM_E_INCOMPLETE_CLASS |
0x80041020 | 尚未設定類別的必要屬性。 |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | 可用的記憶體不足,無法完成作業。 |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI 可能已停止並重新啟動。 再次呼叫 ConnectServerWmi。 |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | 目前處理序與 WMI 之間的遠端程序呼叫 (RPC) 連結失敗。 |
WBEM_S_NO_ERROR |
0 | 函式呼叫成功。 |
備註
此函式會包裝向 IWbemServices::PutClass 方法發出的呼叫。
使用者不可建立名稱開頭或結尾為底線字元的類別。
如果函式呼叫失敗,您可以藉由呼叫 GetErrorInfo 函式來取得其他錯誤資訊。
規格需求
平台:請參閱系統需求。
標頭:WMINet_Utils.idl
.NET Framework版本:自 4.7.2 起可用