Функция 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
Указатель на возвращенные хэш-данные файла.
Возвращаемое значение
Ценность | Значение |
---|---|
|
Функция успешно завершена. |
|
Файл не существует. |
|
Файл не удалось открыть для получения сведений о версии. |
|
Произошла непредвиденная ошибка. |
Замечания
Весь 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 |
См. также
управления версиями файлов по умолчанию
таблицы MsiFileHash