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_MEMORY、 WBEM_E_NOT_FOUND等。
- 方法 ((如 uint32) )返回方法的结果。
注解
当客户端针对类调用 IWbemServices::ExecMethod 时,WMI 调用 ExecMethod。 因此,如果提供程序支持一个或多个方法,则必须实现 ExecMethod 。 以下列表描述了 ExecMethod 的常见实现:
- 通过检查 bstrMethodName 参数确定客户端调用的方法。
-
使用 CInstance 类中的 Get 方法(例如 CInstance::GetCHString)从 pInParams 参数检索输入参数。
方法可能具有输入参数、输出参数、输入和输出参数,或者没有输入或输出参数。
-
使用 CInstance 类的 Set 方法(如 CInstance::SetByte 或 CInstance::SetStringArray)在 pOutParams 参数中设置输出参数。
除了声明返回声明中指定的 [out] 属性外,还必须按照 ReturnValue 属性中的定义声明方法的返回值。 如果返回值为 void,则无需声明返回值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | provider.h (包括 FwCommon.h) |
Library | FrameDyn.lib |
DLL | FrameDynOS.dll;FrameDyn.dll |