CryptCATAdminCalcHashFromFileHandle2 函数 (mscat.h)

CryptCATAdminCalcHashFromFileHandle2 函数使用指定的算法计算文件的哈希。

此函数没有关联的导入库。 必须使用 LoadLibraryGetProcAddress 函数动态链接到 Wintrust.dll。

语法

BOOL CryptCATAdminCalcHashFromFileHandle2(
  [in]      HCATADMIN hCatAdmin,
  [in]      HANDLE    hFile,
  [in, out] DWORD     *pcbHash,
            BYTE      *pbHash,
            DWORD     dwFlags
);

parameters

[in] hCatAdmin

打开的目录管理员上下文的句柄。 有关详细信息,请参阅 CryptCATAdminAcquireContext2

[in] hFile

正在计算其哈希的文件的句柄。 此参数不能为 NULL ,必须是有效的文件句柄。

[in, out] pcbHash

指向包含 pbHash 参数中的字节数的 DWORD 变量的指针。 输入时,将 “pbHash ”设置为为 pbHash 分配的字节数。 返回时,以 pbHash 形式包含返回的字节数。 如果 pbHash 设置为 NULL,则 pbHash 包含要为 pbHash 分配的字节数。

pbHash

指向接收哈希的 BYTE 缓冲区的指针。 如果将此参数设置为 NULL则代码将 包含要为 pbHash 分配的字节数,并且可以进行后续调用来检索哈希。

dwFlags

保留。 此值必须为零。

返回值

如果函数成功,则返回值为非零 (TRUE) 。

如果函数失败,则返回值为零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError

下表列出了 GetLastError 函数最常返回的错误代码。

返回代码 说明
ERROR_INVALID_PARAMETER
hFile 参数不能为 NULL

hFile 参数必须是有效的文件句柄。

该参数不得为 NULL

dwFlags 参数必须为零 (0) 。

ERROR_INSUFFICIENT_BUFFER
pbHash 参数指向的缓冲区不是 NULL,但不够大,无法写入。 所需缓冲区的正确大小包含在 由hash 参数指向的值中。
NTE_BAD_ALGID
找不到 pwszHashAlgorithm 参数指定的哈希算法。

注解

此函数执行所需的时间取决于要哈希处理的文件的长度、使用的算法和文件位置。 例如,计算非常大的本地文件的哈希需要几秒钟 (几百兆字节) 。

要求

   
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 mscat.h
Library Wintrust.lib
DLL Wintrust.dll

另请参阅

CryptCATAdminCalcHashFromFileHandle

CryptCATAdminCalcHashFromFileHandle2