Метод Provider::ExecMethod(constCInstance&,constBSTR,CInstance*,CInstance*,long) (provider.h)
[Класс Provider является частью платформы поставщика WMI, которая в настоящее время рассматривается в окончательном состоянии, и дальнейшие разработки, улучшения или обновления не будут доступны для проблем, не связанных с безопасностью, влияющих на эти библиотеки. API mi mi следует использовать для всех новых разработок.]
Метод ExecMethod вызывается WMI для вызова метода в классе или экземпляре.
Синтаксис
HRESULT ExecMethod(
[ref] const CInstance & cInstance,
const BSTR bstrMethodName,
CInstance *pInParams,
CInstance *pOutParams,
long lFlags
);
Параметры
[ref] cInstance
Ключевые свойства экземпляра, о чем идет речь, если клиент вызвал метод экземпляра. Если клиент вызвал статический метод, экземпляр содержит объект класса .
bstrMethodName
Имя вызываемого метода.
pInParams
Указатель на входные параметры метода.
pOutParams
Указатель на выходные параметры метода.
lFlags
Битовая маска флагов со сведениями об операции метода execute. Это значение, заданное клиентом в методе 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) возвращает результат из метода .
Комментарии
WMI вызывает ExecMethod , когда клиент вызывает IWbemServices::ExecMethod для вашего класса. Поэтому необходимо реализовать ExecMethod , если поставщик поддерживает один или несколько методов. В следующем списке описана общая реализация ExecMethod:
- Определите, какой метод вызывает клиент, проверив параметр bstrMethodName .
-
Извлеките входные параметры из параметра pInParams с помощью методов Get из класса CInstance , например CInstance::GetCHString.
Метод может иметь входные параметры, выходные параметры, входные и выходные параметры либо не иметь входных или выходных параметров.
-
Задайте выходные параметры в параметре pOutParams с помощью методов Set класса CInstance , таких как CInstance::SetByte или CInstance::SetStringArray.
Помимо объявления свойств [out], как указано в возвращаемом объявлении, необходимо также объявить возвращаемое значение для метода, как определено в свойстве ReturnValue . Если возвращаемое значение является пустым, объявлять не нужно.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | provider.h (включая FwCommon.h) |
Библиотека | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |