Метод 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 |
[in] Необязательно. Задает путь к файлу сборки. |
pCfgStream |
[in] Необязательно. Задает файл конфигурации как 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, указывающее, установлен ли для элемента <startup> атрибут 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 – это побитовое сочетание 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