共用方式為


WTHelperGetFileHash 函式

[ WTHelperGetFileHash 函式可用於需求一節中指定的作業系統。 它可能會在後續版本中改變或無法使用。]

WTHelperGetFileHash函式會驗證已簽署檔案的簽章,並取得檔案的雜湊值和演算法識別碼。

注意

此函式不會在已發佈的標頭檔中宣告。 若要使用此函式,請以顯示的確切格式加以宣告。 此函式也沒有任何相關聯的匯入程式庫。 您必須使用 LoadLibraryGetProcAddress 函式動態連結至Wintrust.dll。

 

語法

LONG WINAPI WTHelperGetFileHash(
  _In_        LPCWSTR pwszFilename,
  _In_        DWORD   dwFlags,
  _Inout_opt_ PVOID   pvReserved,
  _Out_opt_   BYTE    *pbFileHash,
  _Inout_opt_ DWORD   *pcbFileHash,
  _Out_opt_   ALG_ID  *pHashAlgid
);

參數

pwszFilename [in]

Null 終止 Unicode 字串的指標,其中包含要取得雜湊之檔案的路徑和檔案名。

dwFlags [in]

不使用此參數,而且應該是零。

pvReserved [in, out, optional]

不使用此參數,而且應該是 Null

pbFileHash [out, optional]

要接收檔案雜湊值的緩衝區指標。 其會包含此緩衝區的大小。

linuxFileHash [in, out, optional]

DWORD變數的指標,在輸入上包含pbFileHash緩衝區的大小,以及輸出中接收雜湊值的大小,以位元組為單位。

若要取得雜湊值的必要大小,請傳遞pbFileHash參數的Null。 此函式會將此位置中雜湊值的必要大小以位元組為單位。

如果 pbFileHash 參數不是 Null,而且大小不足以接收雜湊值,則此函式會將所需的大小以位元組為單位放在這個位置,並傳回 ERROR_MORE_DATA

pHashAlgid [out, optional]

ALG_ID變數的指標,用來接收用來建立雜湊值的演算法識別碼。 如果不需要這項資訊,此參數可以是 Null

傳回值

傳回狀態碼,指出函式的成功或失敗。

可能的傳回碼包括但不限於下列各項。

傳回碼 描述
ERROR_SUCCESS
檔案已簽署,並已驗證簽章。
ERROR_MORE_DATA
pbFileHash參數不是Null,而且由 linuxFileHash參數指定的大小不夠大,無法接收雜湊。
ERROR_NOT_ENOUGH_MEMORY
發生記憶體配置失敗。
TRUST_E_BAD_DIGEST
未驗證檔案的簽章。
TRUST_E_NOSIGNATURE
檔案未簽署或簽章無效。

 

規格需求

需求
最低支援的用戶端
Windows XP [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2003 [僅限傳統型應用程式]
DLL
Wintrust.dll