共用方式為


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

傳回檔案哈希資訊的指標。

傳回值

意義
ERROR_SUCCESS
語言函式已順利完成。
ERROR_FILE_NOT_FOUND
檔案不存在。
ERROR_ACCESS_DENIED
無法開啟檔案以取得版本資訊。
E_FAIL
發生未預期的錯誤。
 
 

備註

整個128位檔案哈希會以四個32位字段傳回。 四個字段的編號是以零起始。 MsiGetFileHash 傳回的值會對應至 MSIFILEHASHINFO 結構的四個字段。 第一個字段對應至 MsiFileHash 數據表的 HashPart1 數據行,第二個字段對應至 HashPart2 數據行,第三個字段對應至 HashPart3 數據行,而第四個字段對應至 HashPart4 數據行。

必須呼叫 MsiGetFileHashFileHash 方法來取得輸入 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

另請參閱

默認檔案版本設定

MSIFILEHASHINFO

MsiFileHash 數據表