RtlSecureZeroMemory 宏 (wdm.h)
RtlSecureZeroMemory 例程以保证安全的方式用零填充内存块。
语法
void RtlSecureZeroMemory(
Ptr,
[in] cnt
);
参数
Ptr
指向要用零填充的内存缓冲区的指针。
[in] cnt
指定要用零填充的字节数。
返回值
无
备注
RtlSecureZeroMemory 的效果与 RtlZeroMemory 的效果相同,只不过它保证内存位置为零,即使它随后未写入。 (编译器可以优化对 RtlZeroMemory 的调用(如果确定调用方不再访问该内存范围)。)
使用 RtlSecureZeroMemory 保证敏感信息已归零。例如,假设某个函数使用本地数组变量来存储密码信息。 函数退出后,除非 RtlSecureZeroMemory 将密码信息归零,否则密码信息可以保留在相同的内存位置。
RtlSecureZeroMemory 比 RtlZeroMemory 慢;因此,如果安全性不是问题,请改用 RtlZeroMemory 。
如果 ptr 块位于非分页池中,则 RtlSecureZeroMemory 的调用方可以在任何 IRQL 上运行。 否则,调用方必须在 IRQL <= APC_LEVEL 运行。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Server 2003 及更高版本的 Windows 中可用。 (由于例程是内联声明的,因此例程的主体可以包含在操作系统的早期版本中。) |
目标平台 | 桌面 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | 任何级别 (请参阅备注部分) |