描述
IWbemServices.DeleteInstanceAsync方法异步删除当前命名空间中现有类的实例。通过由呼叫者实现的IWbemObjectSink接口报告操作的确认或失败。
C++ 语法
HRESULT DeleteInstanceAsync( [in] const BSTR strObjectPath, [in] LONG lFlags, [in] IWbemContext *pCtx, [in] IWbemObjectSink *pResponseHandler ); |
PowerBASIC 语法
METHOD DeleteInstanceAsync ( _ BYVAL strObjectPath AS DWORD, _ BYVAL lFlags AS LONG, _ BYVAL pCtx AS IWbemContext, _ BYREF pResponseHandler AS IWbemObjectSink _ ) AS LONG |
参数
strObjectPath
有效BSTR包含要删除的实例的对象路径。
lFlags
WBEM_FLAG_SEND_STATUS向Windows Management注册通过客户端实施IWbemObjectSink.SetStatus接收中间状态报告的请求。提供商实施必须支持中间状态报告,为此标志改变行为。
pCtx
通常为NULL。否则,这是一个指向可能由提供者正在删除实例的IWbemContext对象的指针。必须在相关提供者的文档中指定上下文对象中的值。
pResponseHandler
指向呼叫者执行IWbemObjectSink的指针。该处理程序通过SetStatus方法获取删除操作的状态。如果返回任何错误代码,则不使用提供的IWbemObjectSink指针。如果返回WBEM_S_NO_ERROR,则调用用户的IWbemObjectSink实现来指示操作的结果。Windows Management仅在WBEM_S_NO_ERROR返回的情况下才调用AddRef指针。在错误代码返回的情况下,引用计数与输入相同。有关详细信息,请参阅调用方法.
返回值
此方法返回一个指示方法调用状态的HRESULT.下表列出了HRESULT中包含的值。
失败时,您可以从COM函数GetErrorInfo获取任何可用的信息。
如果DeleteInstanceAsync返回WBEM_S_NO_ERROR,则WMI等待来自响应处理程序的SetStatus方法的结果。WMI在本地连接上无限期地等待,或者直到发生远程连接超时。
其他错误条件与pResponseHandler参数提供的对象接收端异步报告。
如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。
注意呼叫DeleteInstanceAsync的客户端必须始终期望使用其IWbemObjectSink.Indicate方法报告呼叫结果。
注意当strObjectPath指向的实例属于类层次结构的成员时,DeleteInstanceAsync的成功取决于最上层的非抽象提供者。有关确定此操作成功的依赖关系的详细说明,请参阅IWbemServices.DeleteInstance中的注释。
退货代码 |
描述 |
WBEM_E_FAILED |
这表示其他未指定的错误。 |
WBEM_E_INVALID_CLASS |
指定的类无效。 |
WBEM_E_INVALID_PARAMETER |
指定了无效参数。 |
WBEM_E_OUT_OF_MEMORY |
没有足够的内存来完成操作。 |
WBEM_E_SHUTTING_DOWN |
Windows管理服务可能已停止并重新启动。需要新的电话ConnectServer. |
WBEM_E_TRANSPORT_FAILURE |
这表示当前进程和Windows Management之间的远程过程调用(RPC)链接失败。 |
WBEM_E_INVALID_OBJECT_PATH |
如果指定的对象路径无效或是类对象路径。 |
WBEM_E_INVALID_OPERATION |
如果指定的实例不能被删除。 |
WBEM_E_NOT_FOUND |
提供者无法识别该实例。 |
WBEM_E_PROVIDER_NOT_CAPABLE |
提供者无论是否识别该名称,都无法删除实例。如果不需要更具体的代码,则在所有情况下返回此错误代码。 |
WBEM_S_NO_ERROR |
通话成功。 |
备注
实例提供商可以通过DeleteInstanceAsync的返回码或通过pResponseHandler进行的SetStatus呼叫来报告成功或失败。如果发送到SetStatus,则通过pResponseHandler发送到sink的返回码优先。因为回调可能不会在客户端要求的相同身份验证级别返回,建议您使用半异步而不是异步通信。如果需要异步通信,请参阅调用方法.
有关半同步使用方法的更多信息,请参阅IWbemServices.DeleteInstance和调用方法.
要求
客户 |
需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95。 |
服务器 |
需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。 |
头 |
在Wbemcli.inc中声明。 |
DLL |
需要Fastprox.dll。 需要Esscli.dll。 需要Framedyn.dll。 需要Ntevt.dll。 需要Stdprov.dll。 需要Viewprov.dll。 需要Wbemcomn.dll。 需要Wbemcore.dll。 需要Wbemess.dll。 需要Wbemsvc.dll。 需要Wmipicmp.dll。 需要Wmidcprv.dll。 需要Wmipjobj.dll。 需要Wmiprvsd.dll。 |