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

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

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

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

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

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

Требования

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