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 の場合、GetRequestedRuntime が返されるときに、pcchVersion には必要なサイズの pwzVersion が含まれて、事前の割り当てが可能になります。それ以外の場合、pcchVersion には pwzVersion に書き込まれる文字数が含まれます。 |
pwzImageVersion |
[out] 省略可能です。 GetRequestedRuntime が返されるときに、返される ICLRRuntimeInfo インターフェイスに対応する CLR バージョンが含まれます。 |
pcchImageVersion |
[in、out] 省略可能です。 バッファー オーバーランを回避するため、入力として pwzImageVersion のサイズを指定します。 pwzImageVersion が null の場合、GetRequestedRuntime が返されるとき、pcchImageVersion には必要なサイズの pwzImageVersion が含まれて、事前の割り当てが可能になります。 |
pdwConfigFlags |
[out] 省略可能です。 GetRequestedRuntime がバインディング プロセス中に構成ファイルを使用する場合、返されるときに、pdwConfigFlags には、<startup> 要素に useLegacyV2RuntimeActivationPolicy 属性が設定されているかどうかを示す METAHOST_CONFIG_FLAGS 値とこの属性の値が含まれます。 METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK マスクを pdwConfigFlags に適用して、useLegacyV2RuntimeActivationPolicy に関連する値を取得します。 |
riid |
[in] 要求された ICLRRuntimeInfo インターフェイスにインターフェイス識別子 IID_ICLRRuntimeInfo を指定します。 |
ppRuntime |
[out] GetRequestedRuntime が返されるときに、対応する ICLRRuntimeInfo インターフェイスへのポインターが含まれます。 |
解説
このメソッドが正常に実行されると、<configuration><runtime>
セクション内の構成ストリームに次の要素の 1 つ以上が存在する場合 にのみ、返されるランタイム インターフェイスの追加フラグと現在の既定のスタートアップ フラグが結合するという副作用が発生します。
<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 を指定しません。 |
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 以降で使用可能
関連項目
.NET