Partager via


_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

Voir aussi