Метод 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

См. также раздел