Метод Provider::ExecMethod(ParsedObjectPath*,BSTR,long,CInstance*,CInstance*,MethodContext*) (provider.h)
[Класс Provider является частью платформы поставщика WMI, которая в настоящее время рассматривается в окончательном состоянии, и никакие дальнейшие разработки, улучшения или обновления не будут доступны для проблем, не связанных с безопасностью, влияющих на эти библиотеки. API mi mi следует использовать для всех новых разработок.]
Метод ExecMethod вызывается WMI для вызова метода в классе или экземпляре.
Синтаксис
HRESULT ExecMethod(
ParsedObjectPath *pParsedObjectPath,
BSTR bstrMethodName,
long lFlags,
CInstance *pInParams,
CInstance *pOutParams,
MethodContext *pContext
);
Параметры
pParsedObjectPath
TBD
bstrMethodName
Имя вызываемого метода.
lFlags
Битовая маска флагов со сведениями об операции метода execute. Это значение, указанное клиентом в методе IWbemServices::ExecMethod . Немногие клиенты используют параметры lFlags . Вы можете спокойно игнорировать lFlags в большинстве реализаций поставщика.
Следующий флаг обрабатывается (и отфильтровывается) WMI:
- WBEM_FLAG_RETURN_IMMEDIATELY
pInParams
Указатель на входные параметры метода.
pOutParams
Указатель на выходные параметры метода.
pContext
TBD
Возвращаемое значение
Реализация этого метода поставщиком платформы по умолчанию возвращает 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 . Не нужно объявлять возвращаемое значение, если возвращаемое значение является void.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | provider.h (включая FwCommon.h) |
Библиотека | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |