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