IWbemServices::D eleteInstance 方法 (wbemcli.h)
IWbemServices::D eleteInstance 方法會刪除目前命名空間中現有類別的實例。
語法
HRESULT DeleteInstance(
[in] const BSTR strObjectPath,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IWbemCallResult **ppCallResult
);
參數
[in] strObjectPath
包含要刪除之實例之物件路徑的有效 BSTR 。
[in] lFlags
下列其中一個值有效。
WBEM_FLAG_RETURN_IMMEDIATELY
此旗標會使此為半異步呼叫。 如需詳細資訊,請參閱 呼叫方法。
[in] pCtx
通常為 NULL。 否則,這是 IWbemContext 物件的指標,可供刪除實例的提供者使用。 內容物件中的值必須在有問題的提供者檔中指定。
[out] ppCallResult
如果為 NULL,則不會使用此參數。 如果指定 ppCallResult ,則必須將它設定為在進入時指向 NULL 。 如果 lFlags 參數包含 WBEM_FLAG_RETURN_IMMEDIATELY,此呼叫會立即傳回 WBEM_S_NO_ERROR。 ppCallResult 參數會接收新 IWbemCallResult 物件的指標,然後可以使用 GetCallStatus 方法輪詢以取得結果。
傳回值
這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 HRESULT 中包含的值。
失敗時,您可以從 COM 函式 GetErrorInfo 取得任何可用資訊。
如果網路問題造成您失去 Windows 管理遠端連線,也可能傳回 COM 特定的錯誤碼。
備註
呼叫 IWbemServices::D eleteInstance 方法,以刪除目前命名空間中的現有實例。 無法刪除其他命名空間中的實例。 呼叫 DeleteInstance 以刪除屬於階層中類別的實例時,Windows 管理會針對負責階層中非抽象類別的所有提供者呼叫 DeleteInstanceAsync 方法。 也就是說,如果 strObjectPath 參數識別 ClassB 的實例,而 ClassB 衍生自 ClassA、非抽象類別,而且是 ClassC 和 ClassD 的父類別,也會呼叫所有四個類別的提供者。
Windows 管理會使用修改為指向其類別的物件路徑呼叫每個提供者。 例如,如果原始呼叫的 strObjectPath 設定為 “ClassB.k=1”,則對 ClassA 提供者的呼叫會將 strObjectPath 設定為 “ClassA.k=1”。
DeleteInstance 呼叫的成功取決於對最上層非抽象類別提供者的DeleteInstanceAsync呼叫成功。 非抽象類具有抽象類做為其父系。 如果任一這類類別的提供者成功,作業就會成功;如果所有這類類別都失敗,作業就會失敗。
例如,假設 ClassX 是下列階層的基類:
- ClassA 衍生自 ClassX。
- ClassB 衍生自 ClassA。
- ClassC 和 ClassD 衍生自 ClassB。
如果 ClassX、ClassA 和 ClassB 全都是抽象的,而且 DeleteInstance 中的 strObjectPath 參數指向 ClassB 的實例,則 ClassC 的提供者或 ClassD 的提供者都必須成功。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 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 |