Поделиться через


Макрос RtlSecureZeroMemory (wdm.h)

Подпрограмма RtlSecureZeroMemory заполняет блок памяти нулями таким образом, чтобы гарантировать безопасность.

Синтаксис

void RtlSecureZeroMemory(
         Ptr,
  [in]   cnt
);

Параметры

Ptr

Указатель на буфер памяти для заполнения нулями.

[in] cnt

Указывает количество байтов, заполняемых нулями.

Возвращаемое значение

None

Remarks

Действие RtlSecureZeroMemory идентично эффекту RtlZeroMemory, за исключением того, что он гарантированно обнуляет расположение в памяти, даже если оно впоследствии не записывается. (Компилятор может оптимизировать вызов RtlZeroMemory, если он определяет, что вызывающий объект больше не обращается к диапазону памяти.)

Используйте RtlSecureZeroMemory , чтобы гарантировать обнуление конфиденциальной информации. Например, предположим, что функция использует переменную локального массива для хранения сведений о пароле. После завершения работы функции сведения о пароле могут оставаться в том же расположении памяти, если только rtlSecureZeroMemory не обнуляется.

RtlSecureZeroMemory медленнее , чем RtlZeroMemory; Поэтому, если безопасность не является проблемой, используйте вместо нее RtlZeroMemory .

Вызывающие функции RtlSecureZeroMemory могут выполняться в любом irQL, если блок ptr находится в непагрегированных пулах. В противном случае вызывающий объект должен выполняться в irQL <= APC_LEVEL.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Server 2003 и более поздних версиях Windows. (Так как подпрограмма объявлена встроенной, ее текст можно включить в более ранние версии операционной системы.)
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
IRQL Любой уровень (см. раздел "Примечания")

См. также раздел

RtlFillMemory

RtlZeroMemory