msiGetFileHashA 函式 (msi.h)
MsiGetFileHash 函式會採用檔案的路徑,並傳回該檔案的 128 位哈希。 撰寫工具可以使用 MsiGetFileHash 來取得填入 MsiFileHash 數據表所需的檔案哈希。
Windows Installer 使用檔案哈希作為偵測和消除不必要的檔案複製的方法。 儲存在 MsiFileHash 數據表中的檔案哈希可能會與用戶電腦上的現有檔案哈希進行比較。
語法
UINT MsiGetFileHashA(
[in] LPCSTR szFilePath,
[in] DWORD dwOptions,
[out] PMSIFILEHASHINFO pHash
);
參數
[in] szFilePath
要哈希之檔案的路徑。
[in] dwOptions
此數據列中的值必須是 0。 這個參數保留給未來使用。
[out] pHash
傳回檔案哈希資訊的指標。
傳回值
值 | 意義 |
---|---|
|
語言函式已順利完成。 |
|
檔案不存在。 |
|
無法開啟檔案以取得版本資訊。 |
|
發生未預期的錯誤。 |
備註
整個128位檔案哈希會以四個32位字段傳回。 四個字段的編號是以零起始。 MsiGetFileHash 傳回的值會對應至 MSIFILEHASHINFO 結構的四個字段。 第一個字段對應至 MsiFileHash 數據表的 HashPart1 數據行,第二個字段對應至 HashPart2 數據行,第三個字段對應至 HashPart3 數據行,而第四個字段對應至 HashPart4 數據行。
必須呼叫 MsiGetFileHash 或 FileHash 方法來取得輸入 MsiFileHash 數據表的哈希資訊。 請勿嘗試使用其他方法來產生檔案哈希。
注意
msi.h 標頭會將 MsiGetFileHash 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer。 如需 Windows Installer 版本所需的最低 Windows Service Pack 相關信息,請參閱 Windows Installer Run-Time 需求。 |
目標平台 | Windows |
標頭 | msi.h |
程式庫 | Msi.lib |
Dll | Msi.dll |