MapFileAndCheckSumW 函数(imagehlp.h)
计算指定文件的校验和。
语法
DWORD IMAGEAPI MapFileAndCheckSumW(
[in] PCWSTR Filename,
[out] PDWORD HeaderSum,
[out] PDWORD CheckSum
);
参数
[in] Filename
要计算校验和的文件的文件名。
[out] HeaderSum
指向从图像文件接收原始校验和的变量的指针,如果出现错误,则为零。
[out] CheckSum
指向接收计算校验和的变量的指针。
返回值
如果函数成功,则返回值CHECKSUM_SUCCESS (0)。
如果函数失败,则返回值为下列值之一。
返回代码/值 | 描述 |
---|---|
|
无法映射文件。 |
|
无法映射文件的视图。 |
|
无法打开该文件。 |
|
无法将文件名转换为 Unicode。 |
言论
MapFileAndCheckSum 函数计算文件的新校验和,并在 CheckSum 参数中返回该文件。 此函数由创建或修改可执行映像的任何应用程序使用。 内核模式驱动程序和某些系统 DLL 需要校验和。 如果使用适当的链接器开关,则链接器在链接时计算原始校验和。 有关详细信息,请参阅链接器文档。
建议所有映像都具有有效的校验和。 调用方负责将新计算的校验和放入映射映像并更新文件的磁盘映像。
传递不指向有效可执行映像的 Filename 参数将产生不可预知的结果。 鼓励此函数的任何用户确保传递有效的可执行映像。
所有 ImageHlp 函数(如此函数)都是单线程函数。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 若要避免这种情况,必须将来自多个线程的所有并发调用同步到此函数。
注意 此函数的 Unicode 实现调用 ASCII 实现,因此,如果代码页不支持路径中的字符,该函数可能会失败。 例如,如果传递非英语 Unicode 文件路径,并且默认代码页为英语,则无法识别的非英语宽字符将转换为“??” 无法打开文件(函数返回CHECKSUM_OPEN_FAILURE)。
注意
imagehlp.h 标头将 MapFileAndCheckSum 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | imagehlp.h |
库 | Imagehlp.lib |
DLL | Imagehlp.dll |