共用方式為


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 標頭會根據 UNICODE 預處理器常數的定義,將 MsiGetFileHash 定義為自動選取此函式的 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 需求。
目標平臺 窗戶
標頭 msi.h
連結庫 Msi.lib
DLL Msi.dll

另請參閱

預設檔案版本設定

MSIFILEHASHINFO

MsiFileHash 數據表