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


Функция 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 или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Установщик 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.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

См. также раздел

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

MSIFILEHASHINFO

Таблица MsiFileHash