ICLRMetaHostPolicy::GetRequestedRuntime 方法

提供一个基于承载策略、托管程序集、版本字符串和配置流的公共语言运行时 (CLR) 的首选版本的接口。 实际上,此方法不会加载或激活 CLR,而只是返回表示策略结果的 ICLRRuntimeInfo 接口。 此方法取代 GetRequestedRuntimeInfoGetRequestedRuntimeVersionCorBindToRuntimeHostCorBindToRuntimeByCfgGetCORRequiredVersion 方法。

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);

参数

Name

说明

dwPolicyFlags

[in] 必选。 指定 METAHOST_POLICY_FLAGS 枚举的成员,该枚举表示一个绑定策略和任意数量的修饰符。 当前可用的唯一策略是 METAHOST_POLICY_HIGHCOMPAT

修饰符包括 METAHOST_POLICY_EMULATE_EXE_LAUNCHMETAHOST_POLICY_APPLY_UPGRADE_POLICYMETAHOST_POLICY_SHOW_ERROR_DIALOGMETAHOST_POLICY_USE_PROCESS_IMAGE_PATHMETAHOST_POLICY_ENSURE_SKU_SUPPORTED

pwzBinary

[in] 可选。 指定程序集文件路径。

pCfgStream

[in] 可选。 将配置文件指定为 System.Runtime.InteropServices.ComTypes.IStream

pwzVersion

[in, out] 可选。 指定或返回要加载的首选 CLR 版本。

pcchVersion

[in, out] 必选。 指定 pwzVersion 的预期大小为输入以避免缓冲区溢出。 如果 pwzVersion 为 null,则pcchVersion 包含 GetRequestedRuntime 返回时 pwzVersion 的所需大小以允许预分配;否则 pcchVersion 包含写入 pwzVersion 的字符数。

pwzImageVersion

[out] 可选。 GetRequestedRuntime 返回后,包含与返回的 ICLRRuntimeInfo 接口相对应的 CLR 版本。

pcchImageVersion

[in, out] 可选。 指定 pwzImageVersion 的大小为输入以避免缓冲区溢出。 如果 pwzImageVersion 为 null,则pcchImageVersion 包含在 GetRequestedRuntime 返回时 pwzImageVersion 的所需大小以允许预分配。

pdwConfigFlags

[out] 可选。 如果 GetRequestedRuntime 返回时,在绑定过程中使用一个配置文件,pdwConfigFlags 包含一个 METAHOST_CONFIG_FLAGS 值,该值指示是否 < 启动 > 元素具有设置,useLegacyV2RuntimeActivationPolicy 特性和特性的值。 将 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 值是从前面的列表设置为默认启动标志的值的按位“或”组合。

返回值

此方法将返回以下特定的 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 参考)