_CorValidateImage 関数

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

構文

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

パラメーター

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

FileName
[in] イメージのファイル名。

戻り値

関数により標準値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL および次の値が返されます。

戻り値 説明
STATUS_INVALID_IMAGE_FORMAT イメージが無効です。 この値には HRESULT 0xC000007BL が含まれています。
STATUS_SUCCESS イメージが有効です。 この値には HRESULT 0x00000000L が含まれています。

解説

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

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

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

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

  • マネージド モジュール イメージが読み込まれたときに、ローダーに返します。

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

_CorExeMain または _CorDllMain により、次のアクションが実行されます。

  • CLR を初期化します。

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

  • 実行を開始します。

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

必要条件

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

ヘッダー: Cor.h

ライブラリ: リソースとして MsCorEE.dll に含まれている

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

関連項目