Поделиться через


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

См. также

Ссылки

Интерфейс ICLRMetaHostPolicy

Другие ресурсы

Интерфейсы размещения платформы .NET Framework 4

Интерфейсы размещения

Размещение (справочник по неуправляемым интерфейсам API)