다음을 통해 공유


ICLRMetaHostPolicy::GetRequestedRuntime 메서드

호스팅 정책, 관리되는 어셈블리, 버전 문자열 및 구성 스트림을 기반으로 기본 CLR(공용 언어 런타임) 버전에 대한 인터페이스를 제공합니다. 이 메서드는 실제로 CLR을 로드하거나 활성화하지 않지만 정책 결과를 나타내는 ICLRRuntimeInfo 인터페이스를 반환합니다. 이 메서드는 GetRequestedRuntimeInfo, GetRequestedRuntimeVersion, CorBindToRuntimeHost, CorBindToRuntimeByCfgGetCORRequiredVersion 메서드를 대체합니다.

HRESULT GetRequestedRuntime(
    [in]  METAHOST_POLICY_FLAGS dwPolicyFlags,
    [in]  LPCWSTR pwzBinary,
    [in]  IStream *pCfgStream,
    [in, out, size_is(*pcchVersion)] LPWSTR pwzVersion,
    [in, out]  DWORD *pcchVersion,
    [out, size_is(*pcchImageVersion)] LPWSTR pwzImageVersion,
    [in, out]  DWORD *pcchImageVersion,
    [out] DWORD *pdwConfigFlags,
    [in]  REFIID  riid
    [out, iid_is(riid), retval] LPVOID *ppRuntime);

매개 변수

Name

설명

dwPolicyFlags

[in] 필수 요소입니다. METAHOST_POLICY_FLAGS 열거형의 멤버를 지정하여 바인딩 정책과 한정자를 나타냅니다. 현재 사용할 수 있는 유일한 정책은 METAHOST_POLICY_HIGHCOMPAT입니다.

한정자는 METAHOST_POLICY_EMULATE_EXE_LAUNCH, METAHOST_POLICY_APPLY_UPGRADE_POLICY, METAHOST_POLICY_SHOW_ERROR_DIALOG, METAHOST_POLICY_USE_PROCESS_IMAGE_PATHMETAHOST_POLICY_ENSURE_SKU_SUPPORTED 등이 있습니다.

pwzBinary

[in] 선택적 요소. 어셈블리 파일 경로를 지정합니다.

pCfgStream

[in] 선택적 요소. 구성 파일을 System.Runtime.InteropServices.ComTypes.IStream으로 지정합니다.

pwzVersion

[in, out] 선택적 요소입니다. 로드될 기본 CLR 버전을 지정하거나 반환합니다.

pcchVersion

[in, out] 필수 요소입니다. 버퍼 오버런을 방지하기 위한 pwzVersion의 예상 크기를 입력으로 지정합니다. pwzVersion이 null인 경우 GetRequestedRuntime이 반환되면 사전 할당이 가능하도록 pcchVersion이 예상 크기의 pwzVersion을 포함하고 있습니다. 그렇지 않으면 pcchVersion은 pwzVersion에 작성된 문자 수를 포함합니다.

pwzImageVersion

[out] 선택적 요소입니다. GetRequestedRuntime이 반환될 때 반환되는 ICLRRuntimeInfo 인터페이스에 해당하는 CLR 버전을 포함합니다.

pcchImageVersion

[in, out] 선택적 요소입니다. 버퍼 오버런을 방지하기 위한 pwzImageVersion의 크기를 입력으로 지정합니다. pwzImageVersion이 null이면 GetRequestedRuntime이 반환될 때 사전 할당이 가능하도록 pcchImageVersion에 필요한 크기의 pwzImageVersion이 들어 있습니다.

pdwConfigFlags

[out] 선택적 요소입니다. GetRequestedRuntime이 바인딩 프로세스에서 구성 파일을 사용할 경우 반환되면 pdwConfigFlags에는 <startup> 요소에 useLegacyV2RuntimeActivationPolicy 특성이 설정되었는지 여부를 나타내는 METAHOST_CONFIG_FLAGS 값과 해당 특성의 값이 포함되어 있습니다. useLegacyV2RuntimeActivationPolicy와 관련된 값을 가져오려면 METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK 마스크를 pdwConfigFlags에 적용하십시오.

riid

[in] 요청된 ICLRRuntimeInfo 인터페이스의 인터페이스 식별자인 IID_ICLRRuntimeInfo를 지정합니다.

ppRuntime

[out] GetRequestedRuntime이 반환될 때 해당 ICLRRuntimeInfo 인터페이스에 대한 포인터를 포함합니다.

설명

이 메서드가 성공할 때 다음 요소 중 하나 이상이 <configuration><runtime> 섹션의 구성 스트림에 있는 경우에는 추가 플래그를 반환된 런타임 인터페이스의 현재 기본 시작 플래그와 결합하는 의도하지 않은 동작이 발생합니다.

  • <gcServer enabled="true"/>를 사용하면 STARTUP_SERVER_GC가 설정됩니다.

  • <etwEnable enabled="true"/>를 사용하면 STARTUP_ETW가 설정됩니다.

  • <appDomainResourceMonitoring enabled="true"/>를 사용하면 STARTUP_ARM이 설정됩니다.

이렇게 하면 기본 STARTUP_FLAGS 값은 기본 시작 플래그가 있는 앞의 목록에서 설정한 값의 비트 OR 조합입니다.

반환 값

이 메서드는 메서드 오류를 나타내는 HRESULT 오류뿐만 아니라 다음과 같은 특정 HRESULT를 반환합니다.

HRESULT

설명

S_OK

메서드가 성공적으로 완료되었습니다.

E_POINTER

pwzVersion은 null이 아니고 pcchVersion이 null입니다.

또는

pwzImageVersion은 null이 아니고 pcchImageVersion이 null입니다.

E_INVALIDARG

dwPolicyFlags가 METAHOST_POLICY_HIGHCOMPAT를 지정하지 않습니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: MetaHost.h

라이브러리: MSCorEE.dll에 리소스로 포함됨

.NET Framework 버전: 4

참고 항목

참조

ICLRMetaHostPolicy 인터페이스

기타 리소스

.NET Framework 4 호스팅 인터페이스

호스팅 인터페이스

호스팅(관리되지 않는 API 참조)