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);
매개 변수
속성 | Description |
---|---|
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 값이 포함됩니다. METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK 마스크를 pdwConfigFlags 에 적용하여 useLegacyV2RuntimeActivationPolicy 와 관련된 값을 가져옵니다. |
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 조합입니다.
Return Value
이 메서드는 다음과 같은 특정 HRESULT뿐만 아니라 메서드 오류를 나타내는 HRESULT 오류도 반환합니다.
HRESULT | 설명 |
---|---|
S_OK | 메서드가 완료되었습니다. |
E_POINTER | pwzVersion 은 null이 아니고 pcchVersion 은 null입니다.또는 pwzImageVersion 은 null이 아니고 pcchImageVersion 은 null입니다. |
E_INVALIDARG | dwPolicyFlags 가 METAHOST_POLICY_HIGHCOMPAT 를 지정하지 않습니다. |
ERROR_INSUFFICIENT_BUFFER | pwzVersion 에 할당된 메모리가 부적합합니다.또는 pwzImageVersion 에 할당된 메모리가 부적합합니다. |
CLR_E_SHIM_RUNTIMELOAD | dwPolicyFlags 에 METAHOST_POLICY_APPLY_UPGRADE_POLICY가 포함되어 있고, pwzVersion 및 pcchVersion 이 둘 다 null입니다. |
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: MetaHost.h
라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.
.NET Framework 버전: 4부터 사용 가능
참고 항목
.NET