Метод 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:

  1. Определите, какой метод вызвал клиент, изучив параметр bstrMethodName .
  2. Извлеките входные параметры из параметра pInParams , используя методы Get из класса CInstance , например CInstance::GetCHString.

    Метод может иметь входные параметры, выходные параметры, входные и выходные параметры либо не иметь входных или выходных параметров.

  3. Задайте выходные параметры в параметре pOutParams с помощью методов Set класса CInstance , таких как CInstance::SetByte или CInstance::SetStringArray.

    Помимо объявления свойств [out], как указано в объявлении возврата, необходимо также объявить возвращаемое значение для метода, как определено в свойстве ReturnValue . Не нужно объявлять возвращаемое значение, если возвращаемое значение является void.

Дополнительные сведения см. в разделе IWbemServices::ExecMethod.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header provider.h (включая FwCommon.h)
Библиотека FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll