Partager via


MapFileAndCheckSumA, fonction (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 de retour

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.

Retourner le code/la valeur 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 l’é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 génère 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, comme celle-ci, sont monothread. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement une altération inattendue du comportement ou de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.

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

Note

L’en-tête imagehlp.h définit MapFileAndCheckSum comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête imagehlp.h
bibliothèque Imagehlp.lib
DLL Imagehlp.dll

Voir aussi

CheckSumMappedFile

Fonctions ImageHlp