次の方法で共有


ICLRMetaHostPolicy::GetRequestedRuntime メソッド

ホスト ポリシー、マネージド アセンブリ、バージョン文字列、および構成ストリームに基づいて、適切な共通言語ランタイム (CLR) のバージョンへのインターフェイスを提供します。 このメソッドでは、実際には 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 [in] 必須。 バインディング ポリシーを表す 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 [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 dwPolicyFlagsMETAHOST_POLICY_HIGHCOMPAT を指定しません。
ERROR_INSUFFICIENT_BUFFER pwzVersion に割り当てられたメモリが不十分です。

または

pwzImageVersion に割り当てられたメモリが不十分です。
CLR_E_SHIM_RUNTIMELOAD dwPolicyFlags には METAHOST_POLICY_APPLY_UPGRADE_POLICY が含まれ、pwzVersionpcchVersion はいずれも null です。

必要条件

:システム要件」を参照してください。

ヘッダー: MetaHost.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

.NET Framework のバージョン: 4 以降で使用可能

関連項目