_CorValidateImage, fonction
Valide les images de module managé et avertit le chargeur du système d’exploitation une fois qu’elles ont été chargées.
Syntaxe
STDAPI _CorValidateImage (
[in] PVOID* ImageBase,
[in] LPCWSTR FileName
);
Paramètres
ImageBase
[in] Pointeur vers l’emplacement de début de l’image à valider en tant que code managé. L’image doit être déjà chargée dans la mémoire.
FileName
[in] Nom de fichier de l’image.
Valeur renvoyée
Cette fonction retourne les valeurs standard E_INVALIDARG
, E_OUTOFMEMORY
, E_UNEXPECTED
et E_FAIL
ainsi que les valeurs suivantes.
Valeur retournée | Description |
---|---|
STATUS_INVALID_IMAGE_FORMAT |
L’image n’est pas valide. Cette valeur a le HRESULT 0xC000007BL. |
STATUS_SUCCESS |
L’image est valide. Cette valeur a le HRESULT 0x00000000L. |
Remarques
Dans Windows XP et versions ultérieures, le chargeur du système d’exploitation recherche les modules managés en examinant le bit du répertoire de descripteur COM dans l’en-tête COFF (Common Object File Format). Un bit défini indique un module managé. Si le chargeur détecte un module managé, il charge MsCorEE.dll et appelle _CorValidateImage
, qui effectue les actions suivantes :
Vérifie que l’image est un module managé valide.
Change le point d’entrée dans l’image en point d’entrée dans le Common Language Runtime (CLR).
Pour les versions 64 bits de Windows, modifie l’image qui est en mémoire en la transformant du format PE32 en format PE32+.
Retourne au chargeur quand les images de module managé sont chargées.
Pour les images exécutables, le chargeur du système d’exploitation appelle ensuite la fonction _CorExeMain, quel que soit le point d’entrée spécifié dans l’exécutable. Pour les images d’assembly DLL, le chargeur appelle la fonction _CorDllMain.
_CorExeMain
ou _CorDllMain
effectue les actions suivantes :
Initialise le CLR.
Recherche le point d’entrée managé dans l’en-tête CLR de l’assembly.
Commence l’exécution.
Le chargeur appelle la fonction _CorImageUnloading quand les images de module managé sont déchargées. Cependant, cette fonction n’effectue aucune action : elle ne fait que retourner.
Configuration requise
Plateformes : Consultez Configuration requise.
En-tête : Cor.h
Bibliothèque : incluse comme ressource dans MsCorEE.dll
Versions de .NET Framework : Disponible à partir de la version 1.0