MsiGetFileHashA, fonction (msi.h)

La fonction MsiGetFileHash prend le chemin d’un fichier et retourne un hachage 128 bits de ce fichier. Les outils de création peuvent utiliser MsiGetFileHash pour obtenir le hachage de fichier nécessaire pour remplir la table MsiFileHash.

Windows Installer utilise le hachage de fichiers comme un moyen de détecter et d’éliminer la copie de fichiers inutile. Un hachage de fichier stocké dans la table MsiFileHash peut être comparé à un hachage d’un fichier existant sur l’ordinateur de l’utilisateur.

Syntaxe

UINT MsiGetFileHashA(
  [in]  LPCSTR           szFilePath,
  [in]  DWORD            dwOptions,
  [out] PMSIFILEHASHINFO pHash
);

Paramètres

[in] szFilePath

Chemin d’accès au fichier à hacher.

[in] dwOptions

La valeur de cette colonne doit être 0. Ce paramètre est réservé à un usage futur.

[out] pHash

Pointeur vers les informations de hachage de fichier retournées.

Valeur retournée

Valeur Signification
ERROR_SUCCESS
La fonction s’est terminée avec succès.
ERROR_FILE_NOT_FOUND
Le fichier n'existe pas.
ERROR_ACCESS_DENIED
Impossible d’ouvrir le fichier pour obtenir des informations de version.
E_FAIL
Une erreur inattendue s’est produite.
 
 

Remarques

Le hachage de fichier 128 bits entier est retourné sous la forme de quatre champs 32 bits. La numérotation des quatre champs est de base zéro. Les valeurs retournées par MsiGetFileHash correspondent aux quatre champs de la structure MSIFILEHASHINFO . Le premier champ correspond à la colonne HashPart1 de la table MsiFileHash, le deuxième champ correspond à la colonne HashPart2, le troisième champ correspond à la colonne HashPart3 et le quatrième champ correspond à la colonne HashPart4.

Les informations de hachage entrées dans la table MsiFileHash doivent être obtenues en appelant MsiGetFileHash ou la méthode FileHash . N’essayez pas d’utiliser d’autres méthodes pour générer le hachage de fichier.

Notes

L’en-tête msi.h définit MsiGetFileHash 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 Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP. Pour plus d’informations sur le Service Pack Windows requis par une version de Windows Installer, consultez Configuration requise pour le runtime Windows.
Plateforme cible Windows
En-tête msi.h
Bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Gestion de versions des fichiers par défaut

MSIFILEHASHINFO

Table MsiFileHash