Функция SecureZeroMemory2
Функция SecureZeroMemory2 заполняет блок памяти нулями таким образом, чтобы обеспечить безопасность.
Важно!
Некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Параметры
Назначение Param [out]
Указатель на начальный адрес блока памяти для заполнения нулями.
Длина param [in]
Размер блока памяти для заполнения нулями в байтах.
Синтаксис
volatile void*
SecureZeroMemory2 (
_Out_writes_bytes_all_(Length) volatile void* Destination,
SIZE_T Length
);
Замечания
Этот API является удобной оболочкой вокруг FillVolatileMemory и идентичен ZeroVolatileMemory. Дополнительные сведения см. в примечаниях FillVolatileMemory .
Примечание.
Эта функция работает во всех версиях Windows, а не только на последних версиях. Чтобы получить объявление функции из заголовка winbase.h
, необходимо использовать последний пакет SDK. Вам также нужна библиотека (volatileaccessu.lib
) из последнего пакета SDK. Однако результирующий двоичный файл будет работать в более ранних версиях Windows.
Пример
UCHAR SensitiveData[100];
// Imagine we temporarily store some sensitive cryptographic
// material in a buffer.
StoreCryptographicKey(&SensitiveData);
DoCryptographicOperation(&SensitiveData);
// Now that we are done using the sensitive data we want to
// erase it from the stack. We cannot call FillMemory because
// if the compiler realizes that "SensitiveData" is not
// referenced again the compiler can remove the call to FillMemory.
// Instead we can call SecureZeroMemory2, ZeroVolatileMemory, or FillVolatileMemory
// (the former two are convienence wrappers around the latter). These
// calls will not be optimized away by the compiler.
// Note that SecureZeroMemory2 performs better than the old
// SecureZeroMemory API.
SecureZeroMemory2(&SensitiveData, sizeof(SensitiveData));
Requirements
Минимальный поддерживаемый клиент: сборка предварительной версии Windows 11 Insider Preview ТБ D
Заголовок: winbase.h (включая Winbase.h)
Библиотека режима ядра: volatileaccessk.lib
Библиотека пользовательского режима: volatileaccessu.lib