Provider::ExecMethod (constCInstance&,constBSTR,CInstance*,CInstance*,long) 方法 (provider.h)

[Provider 类是 WMI 提供程序框架的一部分,现在视为处于最终状态,对于影响这些库的非安全性相关问题,将不会提供进一步的开发、增强或更新。 所有新开发均应使用 MI API。]

WMI 调用 ExecMethod 方法以调用类或实例上的方法。

语法

HRESULT ExecMethod(
  [ref] const CInstance & cInstance,
        const BSTR        bstrMethodName,
        CInstance         *pInParams,
        CInstance         *pOutParams,
        long              lFlags
);

参数

[ref] cInstance

如果客户端调用实例方法,则有问题的实例的关键属性。 如果客户端调用静态方法, 则 Instance 包含类对象。

bstrMethodName

调用的方法的名称。

pInParams

指向方法输入参数的指针。

pOutParams

指向方法输出参数的指针。

lFlags

标志的位掩码,其中包含有关执行方法操作的信息。 这是客户端在 IWbemServices::ExecMethod 方法中指定的值。 很少有客户端使用 lFlags 参数。 可以在大多数提供程序实现中安全地忽略 lFlags

以下标志由 (处理,并通过 WMI 筛选出) :

  • WBEM_FLAG_RETURN_IMMEDIATELY

返回值

此方法的默认框架提供程序实现将 WBEM_E_PROVIDER_NOT_CAPABLE 返回到调用方法。 IWbemServices::ExecMethod 方法列出了最常见的返回值,但你可以选择返回任何 COM 返回代码。

方法的返回值可以是以下两种类型之一:

  • HRESULT 用于指示 WMI 类型错误: WBEM_E_OUT_OF_MEMORYWBEM_E_NOT_FOUND等。
  • 方法 ((如 uint32) )返回方法的结果。

注解

当客户端针对类调用 IWbemServices::ExecMethod 时,WMI 调用 ExecMethod。 因此,如果提供程序支持一个或多个方法,则必须实现 ExecMethod 。 以下列表描述了 ExecMethod 的常见实现:

  1. 通过检查 bstrMethodName 参数确定客户端调用的方法。
  2. 使用 CInstance 类中的 Get 方法(例如 CInstance::GetCHString)从 pInParams 参数检索输入参数。

    方法可能具有输入参数、输出参数、输入和输出参数,或者没有输入或输出参数。

  3. 使用 CInstance 类的 Set 方法(如 CInstance::SetByte 或 CInstance::SetStringArray)在 pOutParams 参数中设置输出参数。

    除了声明返回声明中指定的 [out] 属性外,还必须按照 ReturnValue 属性中的定义声明方法的返回值。 如果返回值为 void,则无需声明返回值。

有关详细信息,请参阅 IWbemServices::ExecMethod

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 provider.h (包括 FwCommon.h)
Library FrameDyn.lib
DLL FrameDynOS.dll;FrameDyn.dll