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