次の方法で共有


_CorValidateImage 関数

マネージ モジュール イメージを検証し、それらが読み込まれると、オペレーティング システム ローダーに通知します。

STDAPI _CorValidateImage ( 
   [in] PVOID* ImageBase,
   [in] LPCWSTR FileName
);

パラメーター

  • ImageBase
    [入力] マネージ コードとして検証するイメージの開始位置を示すポインター。 イメージは、既にメモリに読み込まれている必要があります。

  • FileName
    [入力] イメージのファイル名。

戻り値

この関数は、E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、および E_FAIL の各標準値と次の値を返します。

戻り値

説明

STATUS_INVALID_IMAGE_FORMAT

イメージは無効です。 この値は HRESULT 0xC000007BL を持ちます。

STATUS_SUCCESS

イメージは有効です。 この値は HRESULT 0x00000000L を持ちます。

解説

Windows XP 以降のバージョンでは、オペレーティング システム ローダーが、COFF (Common Object File Format) ヘッダー内の COM 記述子ディレクトリ ビットを調べることによって、マネージ モジュールの存在をチェックします。 ビットが設定されていれば、それはマネージ モジュールであることを示します。 ローダーは、マネージ モジュールを検出すると、MsCorEE.dll を読み込み、次のアクションを実行する _CorValidateImage を呼び出します。

  • イメージが有効なマネージ モジュールであることを確認します。

  • イメージのエントリ ポイントを共通言語ランタイム (CLR: Common Language Runtime) のエントリ ポイントに変更します。

  • 64 ビット バージョンの Windows では、メモリ内のイメージを PE32 から PE32+ 形式に変換することによって変更します。

  • マネージ モジュール イメージが読み込まれると、ローダーに戻ります。

実行可能ファイル イメージの場合、オペレーティング システム ローダーは、実行可能ファイルで指定されているエントリ ポイントに関係なく、_CorExeMain 関数を呼び出します。 DLL アセンブリ イメージの場合、ローダーは _CorDllMain 関数を呼び出します。

_CorExeMain または _CorDllMain は、次のアクションを実行します。

  • CLR を初期化します。

  • アセンブリの CLR ヘッダーからマネージ エントリ ポイントを検索します。

  • 実行を開始します。

ローダーは、マネージ モジュール イメージがアンロードされると、_CorImageUnloading 関数を呼び出します。 ただし、この関数は何のアクションも実行せず、戻るだけです。

必要条件

プラットフォーム : 「.NET Framework システム要件」を参照

ヘッダー: Cor.h

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

.NET Framework のバージョン : 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

参照

その他の技術情報

メタデータ グローバル静的関数