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, 可选]

指向缓冲区的指针,用于接收文件的哈希值。 该参数包含此缓冲区的大小。

2013 年 10 月 20 日 ,可选

指向 DWORD 变量的指针,该变量在输入时包含 pbFileHash 缓冲区的大小(以字节为单位),并在输出时接收哈希值的大小(以字节为单位)。

若要获取哈希值所需的大小,请为 pbFileHash 参数传递 NULL。 此函数会将哈希值所需的大小(以字节为单位)放置在此位置。

如果 pbFileHash 参数不为 NULL,并且大小不足以接收哈希值,则此函数会将所需大小(以字节为单位)放置在此位置并返回 ERROR_MORE_DATA

pHashAlgid [out, optional]

指向 ALG_ID 变量的指针,用于接收用于创建哈希值的算法的标识符。 如果不需要此信息,此参数可以为 NULL

返回值

返回指示函数成功或失败的状态代码。

可能的返回代码包括但不限于以下内容。

返回代码 说明
ERROR_SUCCESS
文件已签名,签名已验证。
ERROR_MORE_DATA
pbFileHash 参数不为 NULL并且由“pbFileHash”参数指定的大小不够大,无法接收哈希。
ERROR_NOT_ENOUGH_MEMORY
发生内存分配失败。
TRUST_E_BAD_DIGEST
未验证文件的签名。
TRUST_E_NOSIGNATURE
文件未签名或签名无效。

 

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
DLL
Wintrust.dll