RtlSecureZeroMemory 函数 (wdm.h)

RtlSecureZeroMemory 例程以保证安全的方式用零填充内存块。

语法

PVOID RtlSecureZeroMemory(
  [out] PVOID  ptr,
  [in]  SIZE_T cnt
);

参数

[out] ptr

指向要用零填充的内存缓冲区的指针。

[in] cnt

指定要用零填充的字节数。

返回值

备注

RtlSecureZeroMemory 的效果与 RtlZeroMemory 的效果相同,只不过它保证内存位置为零,即使它随后未写入。 (编译器可以优化对 RtlZeroMemory 的调用(如果确定调用方不再访问该内存范围)。)

使用 RtlSecureZeroMemory 保证敏感信息已归零。例如,假设某个函数使用本地数组变量来存储密码信息。 函数退出后,除非 RtlSecureZeroMemory 将密码信息归零,否则密码信息可以保留在相同的内存位置。

RtlSecureZeroMemoryRtlZeroMemory 慢;因此,如果安全性不是问题,请改用 RtlZeroMemory

如果 ptr 块位于非分页池中,则 RtlSecureZeroMemory 的调用方可以在任何 IRQL 上运行。 否则,调用方必须在 IRQL <= APC_LEVEL 运行。

要求

要求
最低受支持的客户端 在 Windows Server 2003 及更高版本的 Windows 中可用。 (由于例程是内联声明的,因此例程的主体可以包含在操作系统的早期版本中。)
目标平台 桌面
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
IRQL 任何级别 (请参阅备注部分)

另请参阅

RtlFillMemory

RtlZeroMemory