Share via


CorBindToRuntimeEx

アンマネージ ホストが共通言語ランタイムをプロセスに読み込むことを有効にします。CorBindToRuntimeEx を使用するシナリオの詳細については、「共通言語ランタイムのホスト」を参照してください。

このメソッドは、次のことをホストに許可するパラメータを受け取ります。

  • 読み込むランタイムのバージョンを指定します。

  • サーバー ビルドまたはワークステーション ビルドのどちらを読み込むのかを指定します。

  • 同時実行ガベージ コレクションを実行するか、または非同時実行ガベージ コレクションを実行するかを制御します。

  • アセンブリをドメイン中立として読み込むかどうかを制御します。

  • ホストが共通言語ランタイムの開始前にそのインスタンスを構成できるようにする追加オプションを設定するために使用する、ICorRuntimeHost へのインターフェイス ポインタを取得します。

HRESULT CorBindToRuntimeEx ( 
    LPWSTR pwszVersion,   
    LPWSTR pwszBuildFlavor, 
    DWORD flags,            
    REFCLSID rclsid,      
    REFIID riid,    
    LPVOID* ppv
);

パラメータ

パラメータ 説明

pwszVersion

[入力] 読み込む共通言語ランタイムのバージョンを示す文字列。

.NET Framework のバージョン番号は、メジャー.マイナ.ビルド.リビジョンのように、ピリオドで区切られた 4 つの部分で構成されています。pwszVersion として渡される文字列は、文字 "v" で始まり、バージョン番号の最初の 3 つの部分がその後に続く必要があります。次に例を示します。

   v1.0.1529

いくつかのバージョンの共通言語ランタイムは、以前のバージョンの共通言語ランタイムとの互換性を指定するポリシー ステートメントと共にインストールされています。既定では、スタートアップ shim により、ポリシー ステートメントに対して pwszVersion が評価され、要求されたバージョンと互換性がある最新バージョンのランタイムが読み込まれます。ホストは shim に対し、flags で値 STARTUP_LOADER_SAFEMODE を渡すことにより、ポリシー評価を省略し、pwszVersion で指定されたバージョンとまったく同じバージョンを読み込ませることができます。以下の flags の説明を参照してください。

呼び出し元が pwszVersion に null を指定すると、共通言語ランタイムの最新バージョンが読み込まれます。null を渡すと、ホストはどのバージョンのランタイムを読み込むかを制御できなくなります。状況によってはこのような処理が適切なこともありますが、読み込むバージョンを特定させておくことを強くお勧めします。

pwszBuildFlavor

[入力] 共通言語ランタイムのサーバー ビルドまたはワークステーション ビルドのどちらを読み込むかを指定する文字列。有効な値は、"wks" と "svr" です。ワークステーション ビルドがシングルプロセッサ マシンでクライアント アプリケーションを実行するために最適化されているのに対し、サーバー ビルドはガベージ コレクションの実行時にマルチ プロセッサを利用するために最適化されています。

pwszBuildFlavor が null に設定されている場合は、ワークステーション ビルドが読み込まれます。シングルプロセッサ マシンで実行するときは、pwszBuildFlavor が "svr" に設定されている場合でも、常にワークステーション ビルドが読み込まれます。ただし、"svr" が渡され、同時実行ガベージ コレクションが指定されている場合は (以下の flags パラメータを参照)、サーバー ビルドが読み込まれます。同時実行ガベージ コレクションをサーバー ビルドで実行するのは一般的に望ましくありませんが、共通言語ランタイムのスタートアップ シムにはこれを防ぐ特別なロジックはありません。

flags

[入力] 同時実行ガベージ コレクション、ドメインに中立なコード、および pwszVersion パラメータの動作を制御するフラグのセット。どのフラグも設定されていない場合は、既定はシングル ドメインになります。有効な値は、次のとおりです。

  • STARTUP_CONCURRENT_GC 同時実行ガベージ コレクションを使用することを指定します。呼び出し元がサーバー ビルドと同時実行ガベージ コレクションをシングル プロセッサ マシン上で要求した場合は、代わりにワークステーション ビルドと非同時実行ガベージ コレクションが実行されます。

  • STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN どのアセンブリもドメインに中立としては読み込みません。

  • STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN すべてのアセンブリをドメインに中立として読み込みます。

  • STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOST 厳密な名前付きアセンブリをドメインに中立として読み込みます。

  • STARTUP_LOADER_SAFEMODE pwszVersion で渡されたのと同じバージョンの共通言語ランタイムを読み込むように指定します。シムは、互換性のある最新バージョンを決めるためのポリシーの評価を実行しません。

  • STARTUP_LEGACY_IMPERSONATION

rclsid

[入力] ICorRuntimeHost インターフェイスを実装しているコクラスの CLSID。サポートされている値は CLSID_CorRuntimeHost または CLSID_CLRRuntimeHost です。

riid

[入力] 要求された rclsid のインターフェイスの IID。サポートされている値は IID_ICorRuntimeHost または IID_ICLRRuntimeHost です。

ppv

[出力] 返された riid へのインターフェイス ポインタ。

解説

pwszVersion で指定したランタイムのバージョンが存在しない場合は、CorBindToRuntimeExCLR_E_SHIM_RUNTIMELOADHRESULT 値を返します。

必要条件

プラットフォーム : Windows 2000、Windows XP、Windows Server 2003 ファミリ

ヘッダー : Mscoree.h で宣言

ライブラリ : : Mscoree.dll にリソースとして格納されていること

参照

関連項目

CorBindToRuntime