Provider::ExecMethod(constCInstance&,constBSTR,CInstance*,CInstance*,long) 메서드(provider.h)

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

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

구문

HRESULT ExecMethod(
  [ref] const CInstance & cInstance,
        const BSTR        bstrMethodName,
        CInstance         *pInParams,
        CInstance         *pOutParams,
        long              lFlags
);

매개 변수

[ref] cInstance

클라이언트가 instance 메서드를 호출한 경우 해당 instance 주요 속성입니다. 클라이언트가 정적 메서드를 호출하는 경우 Instance 에는 클래스 개체가 포함됩니다.

bstrMethodName

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

pInParams

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

pOutParams

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

lFlags

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

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

  • WBEM_FLAG_RETURN_IMMEDIATELY

반환 값

이 메서드의 기본 프레임워크 공급자 구현은 호출 메서드에 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