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);
参数
Name |
说明 |
---|---|
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 包含 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