Метод 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);
Параметры
Имя | Описание |
---|---|
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 |
[в] Необязательно. Задает путь к файлу сборки. |
pCfgStream |
[в] Необязательно. Задает файл конфигурации в виде System.Runtime.InteropServices.ComTypes.IStream. |
pwzVersion |
[in, out] Необязательный. Задает или возвращает предпочтительную версию среды CLR для загрузки. |
pcchVersion |
[in, out] Обязательный. Указывает ожидаемый размер pwzVersion в качестве входных данных для предотвращения переполнения буфера. Если pwzVersion имеет значение NULL, pcchVersion содержит ожидаемый размер pwzVersion при возвращении значения GetRequestedRuntime , чтобы разрешить предварительное выделение; в противном случае pcchVersion содержит число символов, записанных в pwzVersion . |
pwzImageVersion |
[out] Необязательный. При GetRequestedRuntime возврате содержит версию среды CLR, соответствующую возвращаемого интерфейса ICLRRuntimeInfo . |
pcchImageVersion |
[in, out] Необязательный. Указывает размер pwzImageVersion в качестве входных данных для предотвращения переполнения буфера. Если pwzImageVersion имеет значение NULL, pcchImageVersion содержит требуемый размер pwzImageVersion при возвращении значения GetRequestedRuntime , чтобы разрешить предварительное выделение. |
pdwConfigFlags |
[out] Необязательный. Если GetRequestedRuntime во время процесса привязки используется файл конфигурации, при возврате pdwConfigFlags содержит значение METAHOST_CONFIG_FLAGS, указывающее, имеет useLegacyV2RuntimeActivationPolicy ли <элемент запуска> набор атрибутов и значение атрибута. Примените маску METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK к , pdwConfigFlags чтобы получить значения, относящиеся к useLegacyV2RuntimeActivationPolicy . |
riid |
[in] Указывает идентификатор интерфейса IID_ICLRRuntimeInfo для запрошенного интерфейса 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
является побитовым или сочетанием заданных значений из предыдущего списка с флагами запуска по умолчанию.
Возвращаемое значение
Этот метод возвращает следующие конкретные результаты 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