Provider::ExecMethod(ParsedObjectPath*,BSTR,long,CInstance*,CInstance*,MethodContext*) 메서드(provider.h)

[Provider 클래스는 현재 최종 상태로 간주되는 WMI 공급자 프레임워크의 일부이며 라이브러리에 영향을 미치는 비보안 관련 문제에 대해서는 더 이상 개발, 개선 또는 업데이트를 사용할 수 없습니다. 모든 새로운 개발에서는 MI API를 사용해야 합니다.]

ExecMethod 메서드는 클래스 또는 instance 메서드를 호출하기 위해 WMI에서 호출됩니다.

구문

HRESULT ExecMethod(
  ParsedObjectPath *pParsedObjectPath,
  BSTR             bstrMethodName,
  long             lFlags,
  CInstance        *pInParams,
  CInstance        *pOutParams,
  MethodContext    *pContext
);

매개 변수

pParsedObjectPath

TBD

bstrMethodName

호출되는 메서드의 이름입니다.

lFlags

메서드 실행 작업에 대한 정보가 포함된 플래그의 비트 마스크입니다. IWbemServices::ExecMethod 메서드의 클라이언트에서 지정한 값입니다. lFlags 매개 변수를 사용하는 클라이언트는 거의 있습니다. 대부분의 공급자 구현에서 lFlag를 안전하게 무시할 수 있습니다.

다음 플래그는 WMI에 의해 처리되고 필터링됩니다.

  • WBEM_FLAG_RETURN_IMMEDIATELY

pInParams

메서드 입력 매개 변수에 대한 포인터입니다.

pOutParams

메서드 출력 매개 변수에 대한 포인터입니다.

pContext

TBD

반환 값

이 메서드의 기본 프레임워크 공급자 구현은 호출 메서드에 WBEM_E_PROVIDER_NOT_CAPABLE 반환합니다. IWbemServices::ExecMethod 메서드는 COM 반환 코드를 반환하도록 선택할 수 있지만 가장 일반적인 반환 값을 나열합니다.

메서드의 반환 값은 다음 두 가지 형식 중 하나일 수 있습니다.

  • HRESULTWMI 유형 오류(WBEM_E_OUT_OF_MEMORY, WBEM_E_NOT_FOUND 등)를 나타내는 데 사용됩니다.
  • 메서드의 반환 값(예: uint32)은 메서드의 결과를 반환합니다.

설명

WMI는 클라이언트 클래스에 대해 IWbemServices::ExecMethod를 호출할 때 ExecMethod 를 호출합니다. 따라서 공급자가 하나 이상의 메서드를 지원하는 경우 ExecMethod 를 구현해야 합니다. 다음 목록에서는 ExecMethod의 일반적인 구현에 대해 설명합니다.

  1. bstrMethodName 매개 변수를 검사하여 클라이언트가 호출한 메서드를 결정합니다.
  2. CInstance::GetCHString과 같은 CInstance 클래스의 Get 메서드를 사용하여 pInParams 매개 변수에서 입력 매개 변수를 검색합니다.

    메서드에는 입력 매개 변수, 출력 매개 변수, 입력 및 출력 매개 변수가 있거나 입력 또는 출력 매개 변수가 없을 수 있습니다.

  3. CInstance::SetByte 또는 CInstance::SetStringArray와 같은 CInstance 클래스의 Set 메서드를 사용하여 pOutParams 매개 변수에서 출력 매개 변수를 설정합니다.

    반환 선언에 지정된 대로 [out] 속성을 선언하는 것 외에도 ReturnValue 속성에 정의된 대로 메서드의 반환 값도 선언해야 합니다. 반환 값이 void인 경우 반환 값을 선언할 필요가 없습니다.

자세한 내용은 IWbemServices::ExecMethod를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 provider.h(FwCommon.h 포함)
라이브러리 FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll