勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IWbemServices >

DeleteInstanceAsync Method

Previous pageReturn to chapter overviewNext page

描述

 

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。