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

GetCallStatus Method

Previous pageReturn to chapter overviewNext page

描述

 

IWbemCallResult.GetCallStatus方法向用户返回当前未完成的半异步调用的状态。当此调用返回WBEM_S_NO_ERROR时,对IWbemServices方法的原始调用已完成。

 

C++ 语法

 

HRESULT GetCallStatus(

[in]   LONG lTimeout,

[out]  LONG *plStatus

);

 

PowerBASIC 语法

 

METHOD GetCallStatus ( _

BYVAL lTimeout AS LONG, _

BYREF plStatus AS LONG _

) AS LONG

 

参数

 

lTimeout

 

指定此调用在返回之前阻止的最大时间(以毫秒为单位)。如果使用常量WBEM_INFINITE(0xFFFFFFFF),则调用阻塞,直到对IWbemServices方法的原始半异步调用完成。如果使用0(零),则呼叫立即返回呼叫状态。

 

plStatus

 

如果WBEM_S_NO_ERROR在HRESULT中返回此方法,则此参数将接收到IWbemServices方法之一的呼叫的最终结果状态:OpenNamespacePutInstancePutClassGetObjectDeleteInstanceDeleteClassExecMethod.出错时,不会使用plStatuslt指向的值。

 

返回值

 

此方法返回一个HRESULT,指示方法调用的状态。下表列出了HRESULT中包含的值。

 

退货代码

描述

WBEM_S_NO_ERROR

调用完成,并且已经分配了plStatus。

WBEM_S_TIMEDOUT

该对象在lTimeout值过期之前尚未可用。

WBEM_E_TRANSPORT_FAILURE

这表示当前进程和Windows Management之间的远程过程调用(RPC)链接失败。

WBEM_E_INVALID_PARAMETER

指定了无效参数。

WBEM_E_FAILED

发生意外的系统错误。

 

备注

 

出现错误时,可以调用COM函数GetErrorInfo获取更多错误信息。如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。

 

在以异步方式调用IWbemServices方法后,您可以随时调用GetCallStatus来确定呼叫是否完成。GetCallStatus已返回WBEM_S_NO_ERROR,表示原始IWbemServices操作的完成,可能需要根据以下规则调用其他IWbemCallResult方法来检索呼叫结果:

 

·对于IWbemServices.OpenNamespace,必须调用GetResultServices方法来检索新的IWbemServices指针。
·对于IWbemServices.PutInstance,必须调用GetResultString方法来获取分配给对象的对象路径。
·对于IWbemServices.GetObject,必须调用GetResultObject方法来检索对象。
·对于IWbemServices方法DeleteInstanceDeleteClassExecMethodGetCallStatus方法是返回有关这些操作的信息的唯一调用。

 

要求

 

客户

需要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中声明。