マネージド モジュール イメージを検証し、読み込まれた後にオペレーティング システム ローダーに通知します。
Syntax
STDAPI _CorValidateImage (
[in] PVOID* ImageBase,
[in] LPCWSTR FileName
);
Parameters
ImageBase
[in]マネージド コードとして検証するイメージの開始位置へのポインター。 イメージは既にメモリに読み込まれている必要があります。
FileName
[in]イメージのファイル名。
Return Value
この関数は、 E_INVALIDARG
、 E_OUTOFMEMORY
、 E_UNEXPECTED
、および E_FAIL
の標準値と、次の値を返します。
Return value | Description |
---|---|
STATUS_INVALID_IMAGE_FORMAT |
イメージが無効です。 この値には HRESULT 0xC000007BL があります。 |
STATUS_SUCCESS |
イメージは有効です。 この値の HRESULT は 0x000000000L です。 |
Remarks
Windows XP 以降のバージョンでは、オペレーティング システム ローダーは、共通オブジェクト ファイル形式 (COFF) ヘッダーの COM 記述子ディレクトリ ビットを調べることで、マネージド モジュールをチェックします。 セット ビットは、マネージド モジュールを示します。 ローダーがマネージド モジュールを検出すると、MsCorEE.dll が読み込まれ、 _CorValidateImage
が呼び出され、次のアクションが実行されます。
イメージが有効なマネージド モジュールであることを確認します。
イメージ内のエントリ ポイントを共通言語ランタイム (CLR) のエントリ ポイントに変更します。
64 ビット バージョンの Windows では、メモリ内のイメージを PE32 から PE32+ 形式に変換して変更します。
マネージド モジュール イメージが読み込まれるときにローダーに戻ります。
実行可能イメージの場合、オペレーティング システム ローダーは、実行可能ファイルで指定されたエントリ ポイントに関係なく、 _CorExeMain 関数を呼び出します。 DLL アセンブリ イメージの場合、ローダーは _CorDllMain 関数を呼び出します。
_CorExeMain
または _CorDllMain
は、次のアクションを実行します。
CLR を初期化します。
アセンブリの CLR ヘッダーからマネージド エントリ ポイントを検索します。
Begins execution.
ローダーは、マネージド モジュール イメージがアンロードされるときに 、_CorImageUnloading 関数を呼び出します。 ただし、この関数はアクションを実行しません。返されるだけです。
Requirements
:「システム要件」を参照してください。
Header: Cor.h
図書館: MsCorEE.dll にリソースとして含まれる
.NET Framework のバージョン: 1.0 以降で利用可能
.NET