ICLRMetaHostPolicy::GetRequestedRuntime メソッド
ホスト ポリシー、マネージ アセンブリ、バージョン、および構成ストリームに基づいて好みのバージョンの共通言語ランタイム (CLR: Common Language Runtime) へのインターフェイスを提供します。 このメソッドは、実際には 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 |
[入力] 必須。 バインディング ポリシーおよび任意の数の修飾子を表す 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 |
[入力] 省略可能。 アセンブリ ファイルのパスを指定します。 |
pCfgStream |
[入力] 省略可能。 構成ファイルを System.Runtime.InteropServices.ComTypes.IStream として指定します。 |
pwzVersion |
[入力、出力] 省略可能。 読み込まれる推奨 CLR バージョンを指定または返します。 |
pcchVersion |
[入力、出力] 必須。 バッファー オーバーランを回避するために、入力として pwzVersion の予想サイズを指定します。 pwzVersion が null の場合、GetRequestedRuntime から制御が戻ったら、事前割り当てを許可する pwzVersion の予想サイズを pcchVersion に含めます。それ以外の場合、pcchVersion には pwzVersion に書き込まれる文字数を含めます。 |
pwzImageVersion |
[出力] 省略可能。 GetRequestedRuntime から制御が戻った時点で、取得した ICLRRuntimeInfo インターフェイスに対応する CLR バージョンが格納されます。 |
pcchImageVersion |
[入力、出力] 省略可能。 バッファー オーバーランを回避するために、入力として pwzImageVersion のサイズを指定します。 pwzImageVersion が null の場合、GetRequestedRuntime から制御が戻った時点で、事前割り当てを許可する pwzImageVersion の必要なサイズが pcchImageVersion に格納されます。 |
pdwConfigFlags |
[出力] 省略可能。 バインディング プロセス中に GetRequestedRuntime が構成ファイルを使用する場合、pdwConfigFlags には、<startup> 要素に useLegacyV2RuntimeActivationPolicy 属性が設定されているかどうかを示す METAHOST_CONFIG_FLAGS 値、および属性値を含めます。 METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK マスクを pdwConfigFlags に適用して、useLegacyV2RuntimeActivationPolicy に関連する値を取得します。 |
riid |
[入力] 要求された ICLRRuntimeInfo インターフェイスのインターフェイス ID IID_ICLRRuntimeInfo を指定します。 |
ppRuntime |
[出力] GetRequestedRuntime から制御が戻った時点で、対応する ICLRRuntimeInfo インターフェイスへのポインターが格納されます。 |
解説
このメソッドが成功すると、1 つまたは複数の次の要素が <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