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

ExecMethod Method

Previous pageReturn to chapter overviewNext page

描述

 

IWbemServices.ExecMethod方法执行由CIM对象导出的方法。方法调用被转发到执行它的适当提供者。信息和状态返回给呼叫者,阻塞直到呼叫完成。

 

方法不是由Windows Management直接实现,而是由方法提供者导出。对于任何给定的CIM类,可用的方法及其参数必须在相关提供者的文档中指定。

 

有关执行方法的更多信息,请参阅调用方法.

 

C++ 语法

 

HRESULT ExecMethod(

[in]   const BSTR strObjectPath,

[in]   const BSTR strMethodName,

[in]   long lFlags,

[in]   IWbemContext *pCtx,

[in]   IWbemClassObject *pInParams,

[out]  IWbemClassObject **ppOutParams,

[out]  IWbemCallResult **ppCallResult

);

 

PowerBASIC 语法

 

METHOD ExecMethod ( _

BYVAL strObjectPath AS DWORD, _

BYVAL strMethodName AS DWORD, _

BYVAL lFlags AS LONG, _

BYVAL pCtx AS IWbemContext, _

BYVAL pInParams AS IWbemClassObject, _

BYREF ppOutParams AS IWbemClassObject, _

BYREF ppCallResult AS IWbemCallResult _

) AS LONG

 

参数

 

strObjectPath

 

有效BSTR包含执行该方法的对象的对象路径。

 

strMethodName

 

对象的方法名称。

 

lFlags

 

该参数可以设置为0,使其成为同步调用。要使其成为半异步调用,请将LFLAGS设置为WBEM_FLAG_RETURN_IMMEDIATELY,为ppCallResult参数提供有效的指针,此调用将立即返回。有关详细信息,请参阅调用方法.

 

pCtx

 

通常为NULL;否则,这是指向可以由提供者执行该方法的IWbemContext对象的指针。必须在相关提供者的文档中指定上下文对象中的值。有关此参数的更多信息,请参阅拨打电话给WMI.

 

pInParams

 

如果不需要in-parameters来执行该方法,则可能为NULL。否则,它指向IWbemClassObject,其中包含作为方法执行的入站参数的属性。对象的内容是特定于方法的,是有关提供者的规范的一部分。有关构建输入参数的更多信息,请参阅在C ++中创建参数对象.

 

ppOutParams

 

如果不是NULL,则会收到指向出站参数的指针,并返回方法执行的值。该对象的内容是特定于方法的,是有关提供者的规范的一部分。当不再需要时,调用者必须在返回的对象上调用发布.

 

ppCallResult

 

如果为NULL,则不使用。如果指定ppCallResult,则必须将其设置为指定为NULL。在这种情况下,调用会立即返回WBEM_S_NO_ERROR。ppCallResult参数接收一个指向新的IWbemCallResult对象的指针,该对象必须轮询才能使用GetCallStatus方法获取方法执行的结果。呼叫的输出参数可通过调用IWbemCallResult.GetResultObject.

 

返回值

 

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

 

失败时,您可以从COM函数GetErrorInfo获取任何可用的信息。

 

如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。

 

退货代码

描述

WBEM_E_FAILED

这表示其他未指定的错误。

WBEM_E_INVALID_CLASS

指定的类无效。

WBEM_E_INVALID_PARAMETER

指定了无效参数。

WBEM_E_METHOD_DISABLED

试图执行标记为[disabled]的方法。

WBEM_E_METHOD_NOT_IMPLEMENTED

试图在任何相关的类中执行未标记[implemented]的方法。

WBEM_E_NOT_FOUND

指定的对象路径无效

WBEM_E_PROVIDER_NOT_CAPABLE

提供程序不支持方法调用。

WBEM_E_OUT_OF_MEMORY

没有足够的内存来完成操作。

WBEM_E_SHUTTING_DOWN

Windows管理服务可能已停止并重新启动。需要新的电话ConnectServer.

WBEM_E_TRANSPORT_FAILURE

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

WBEM_E_INVALID_METHOD

请求的方法不可用。

WBEM_E_ACCESS_DENIED

当前用户未被授权执行该方法。

WBEM_E_INVALID_METHOD_PARAMETERS

此错误是由以下两个原因之一造成的:

 

所提供的pInParams对象由提供者确定为无效。

 

strObjPath参数指定了一个没有该方法的[static]限定词的类。

WBEM_S_NO_ERROR

通话成功。

 

备注

 

如果ppOutParams不为NULL,客户端可以通过检查ppOutParams指向的对象的ReturnValue属性来确定方法的返回值类型。

 

要求

 

客户

需要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。