Поделиться через


Функция MsiGetFileHashA (msi.h)

Функция MsiGetFileHash принимает путь к файлу и возвращает 128-разрядный хэш этого файла. Средства разработки могут использовать MsiGetFileHash для получения хэша файла, необходимого для заполнения таблицы MsiFileHash.

Установщик Windows использует хэширование файлов в качестве средства для обнаружения и устранения ненужных копий файлов. Хэш файла, хранящийся в таблице MsiFileHash, можно сравнить с хэшем существующего файла на компьютере пользователя.

Синтаксис

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

Параметры

[in] szFilePath

Путь к файлу, который должен быть хэширован.

[in] dwOptions

Значение в этом столбце должно иметь значение 0. Этот параметр зарезервирован для дальнейшего использования.

[out] pHash

Указатель на возвращенные хэш-данные файла.

Возвращаемое значение

Ценность Значение
ERROR_SUCCESS
Функция успешно завершена.
ERROR_FILE_NOT_FOUND
Файл не существует.
ERROR_ACCESS_DENIED
Файл не удалось открыть для получения сведений о версии.
E_FAIL
Произошла непредвиденная ошибка.
 
 

Замечания

Весь 128-разрядный хэш файла возвращается в виде четырех 32-разрядных полей. Нумерирование четырех полей — отсчитывается от нуля. Значения, возвращаемые MsiGetFileHash, соответствуют четырем полям структуры MSIFILEHASHINFO. Первое поле соответствует столбцу HashPart1 таблицы MsiFileHash, второму полю соответствует столбец HashPart2, третьему полю соответствует столбец HashPart3, а четвертое поле соответствует столбцу HashPart4.

Хэш-данные, введенные в таблицу MsiFileHash, должны быть получены путем вызова msiGetFileHash или метода FileHash. Не пытайтесь использовать другие методы для создания хэша файла.

Заметка

Заголовок msi.h определяет MsiGetFileHash как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP. Сведения о минимальном пакете обновления Windows, требуемом версией установщика Windows, см. в разделе "Требования к установщику Windows Run-Time".
целевая платформа Виндоус
заголовка msi.h
библиотеки Msi.lib
DLL Msi.dll

См. также

управления версиями файлов по умолчанию

MSIFILEHASHINFO

таблицы MsiFileHash