Partager via


Fonction MapFileAndCheckSumA (imagehlp.h)

Calcule la somme de contrôle du fichier spécifié.

Syntaxe

DWORD IMAGEAPI MapFileAndCheckSumA(
  [in]  PCSTR  Filename,
  [out] PDWORD HeaderSum,
  [out] PDWORD CheckSum
);

Paramètres

[in] Filename

Nom du fichier pour lequel la somme de contrôle doit être calculée.

[out] HeaderSum

Pointeur vers une variable qui reçoit la somme de contrôle d’origine du fichier image, ou zéro en cas d’erreur.

[out] CheckSum

Pointeur vers une variable qui reçoit la somme de contrôle calculée.

Valeur retournée

Si la fonction réussit, la valeur de retour est CHECKSUM_SUCCESS (0).

Si la fonction échoue, la valeur de retour est l’une des suivantes.

Code/valeur de retour Description
CHECKSUM_MAP_FAILURE
2
Impossible de mapper le fichier.
CHECKSUM_MAPVIEW_FAILURE
3
Impossible de mapper une vue du fichier.
CHECKSUM_OPEN_FAILURE
1
Impossible d’ouvrir le fichier.
CHECKSUM_UNICODE_FAILURE
4
Impossible de convertir le nom de fichier en Unicode.

Remarques

La fonction MapFileAndCheckSum calcule une nouvelle somme de contrôle pour le fichier et la retourne dans le paramètre CheckSum . Cette fonction est utilisée par toute application qui crée ou modifie une image exécutable. Les sommes de contrôle sont requises pour les pilotes en mode noyau et certaines DLL système. L’éditeur de liens calcule la somme de contrôle d’origine au moment du lien, si vous utilisez le commutateur d’éditeur de liens approprié. Pour plus d’informations, consultez la documentation de votre éditeur de liens.

Il est recommandé que toutes les images aient des sommes de contrôle valides. Il incombe à l’appelant de placer la somme de contrôle nouvellement calculée dans l’image mappée et de mettre à jour l’image sur disque du fichier.

Le passage d’un paramètre Filename qui ne pointe pas vers une image exécutable valide produit des résultats imprévisibles. Tout utilisateur de cette fonction est encouragé à s’assurer qu’une image exécutable valide est transmise.

Toutes les fonctions ImageHlp, telles que celle-ci, sont à thread unique. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement un comportement inattendu ou une altération de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.

Note L’implémentation Unicode de cette fonction appelle l’implémentation ASCII et, par conséquent, la fonction peut échouer si la page de code ne prend pas en charge les caractères du chemin d’accès. Par exemple, si vous passez un chemin de fichier Unicode non anglais et que la page de code par défaut est l’anglais, les caractères larges non reconnus non reconnus sont convertis en « ? » et le fichier ne peut pas être ouvert (la fonction retourne CHECKSUM_OPEN_FAILURE).
 

Notes

L’en-tête imagehlp.h définit MapFileAndCheckSum comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête imagehlp.h
Bibliothèque Imagehlp.lib
DLL Imagehlp.dll

Voir aussi

CheckSumMappedFile

Fonctions ImageHlp