ICLRMetaHostPolicy::GetRequestedRuntime メソッド

ホスト ポリシー、マネージ アセンブリ、バージョン、および構成ストリームに基づいて好みのバージョンの共通言語ランタイム (CLR: Common Language Runtime) へのインターフェイスを提供します。 このメソッドは、実際には CLR の読み込みもアクティブ化も行いません。単にポリシー結果を表す ICLRRuntimeInfo インターフェイスを返します。 このメソッドは、GetRequestedRuntimeInfoGetRequestedRuntimeVersionCorBindToRuntimeHostCorBindToRuntimeByCfg、および 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_LAUNCHMETAHOST_POLICY_APPLY_UPGRADE_POLICYMETAHOST_POLICY_SHOW_ERROR_DIALOGMETAHOST_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

参照

参照

ICLRMetaHostPolicy インターフェイス

その他の技術情報

.NET Framework 4 ホスト インターフェイス

ホスト インターフェイス

ホスト (アンマネージ API リファレンス)