_CorValidateImage 函式
驗證受控模組映像,並在載入之後通知作業系統載入器。
語法
STDAPI _CorValidateImage (
[in] PVOID* ImageBase,
[in] LPCWSTR FileName
);
參數
ImageBase
[in] 要驗證為受控程式碼映像起始位置的指標。 映像必須已經載入記憶體中。
FileName
[in] 映像的檔案名。
傳回值
此函式會傳回標準值 E_INVALIDARG
、E_OUTOFMEMORY
、E_UNEXPECTED
和 E_FAIL
,以及下列值。
傳回值 | 描述 |
---|---|
STATUS_INVALID_IMAGE_FORMAT |
映像無效。 此值具有 HRESULT 0xC000007BL。 |
STATUS_SUCCESS |
映像有效。 此值具有 HRESULT 0x00000000L。 |
備註
在 Windows XP 和更新版本中,作業系統載入器會檢查通用物件檔案格式 (COFF) 標頭中的 COM 描述元目錄位元,以檢查受控模組。 設定位元表示受控模組。 如果載入器偵測到受控模組,則會載入 MsCorEE.dll 並呼叫 _CorValidateImage
,這會執行下列動作:
確認映像是有效的受控模組。
將映像中進入點變更為 Common Language Runtime (CLR) 中的進入點。
針對 64 位元版本的 Windows,會將記憶體中的映像從 PE32 格式轉換為 PE32+ 格式,以便進行修改。
載入受控模組映像時傳回載入器。
針對可執行映像,作業系統載入器接著會呼叫 _CorExeMain 函式,不論可執行檔中指定的進入點為何。 針對 DLL 組件映像,載入器會呼叫 _CorDllMain 函式。
_CorExeMain
或 _CorDllMain
會執行下列動作:
初始化 CLR。
從組件的 CLR 標頭找出受控進入點。
開始執行。
載入器會在卸載受控模組映像時呼叫 _CorImageUnloading 函式。 不過,此函式不會執行任何動作;只會傳回。
規格需求
平台:請參閱系統需求。
標頭:Cor.h
程式庫:包含作為 MSCorEE.dll 中的資源
.NET Framework版本:自 1.0 起提供