_CorValidateImage 函式
驗證 Managed 模組映像,並在載入這些映像後通知作業系統載入器。
STDAPI _CorValidateImage (
[in] PVOID* ImageBase,
[in] LPCWSTR FileName
);
參數
ImageBase
[in] 要驗證為 Managed 程式碼之影像的起始位置指標。 該影像必須已載入記憶體中。FileName
[in] 影像的檔名。
傳回值
這個函式會傳回標準值 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED 和 E_FAIL,以及下列的值。
傳回值 |
描述 |
---|---|
STATUS_INVALID_IMAGE_FORMAT |
影像無效。 這個值具有 HRESULT 0xC000007BL。 |
STATUS_SUCCESS |
影像有效。 這個值具有 HRESULT 0x00000000L。 |
備註
在 Windows XP 及更新版本中,作業系統載入器會藉由檢查通用物件檔案格式 (COFF) 標頭中的 COM 描述元目錄位元,來檢查 Managed 模組。 設定的位元表示 Managed 模組。 如果載入器偵測到 Managed 模組,它就會載入 MsCorEE.dll 並呼叫 _CorValidateImage,進而執行下列動作:
確認該映像是有效的 Managed 模組。
將映像中的進入點變更為 Common Language Runtime (CLR) 中的進入點。
在 Windows 64 位元版本中,會將記憶體中的映像從 PE32 格式轉換為 PE32+ 格式,以便進行修改。
在 Managed 模組映像載入時,回到載入器。
對於可執行檔映像,作業系統載入器接著會呼叫 _CorExeMain 函式,無論在可執行檔中指定的進入點為何都是如此。 對於 DLL 組件映像,載入器會呼叫 _CorDllMain 函式。
_CorExeMain 或 _CorDllMain 會執行下列動作:
初始化 CLR。
找出組件之 CLR 標頭的 Managed 進入點。
開始執行。
卸載 Unmanaged 模組影像時,載入器會呼叫 _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