Документация CreateFileMapping ( Замечания раздел) явно заявляет, что
Если файл расширен, содержимое файла между старым концом файла и новым концом файла не гарантируется равным нулю; поведение определяется файловой системой.
Итак, если ваш файл на диске начинается пустым, он не гарантированно обнуляется (поскольку вы его расширяете); Я не думаю, что драйверы файловой системы будут рисковать утечкой потенциально конфиденциальной информации таким образом, но кто знает, может быть, некоторые драйверы файловой системы перерабатывают страницы, уже используемые для вашего процесса (и это не должно быть угрозой безопасности). 1013 *
С другой стороны, я не знаю, были бы файловые системы, которые вообще не обеспечивают безопасность (например, FAT), настолько обеспокоены, чтобы предоставить вам содержимое кластеров, которое они случайно выделили для новой части файла .
Если вместо этого вы создаете раздел памяти, не поддерживаемый файлом на диске, а файлом подкачки, это гарантирует, что вся полученная память обнуляется:
Исходное содержимое страниц в объекте сопоставления файлов, поддерживаемых файлом подкачки операционной системы, равно 0 (ноль).
Это гарантировано, вероятно, потому что при создании файла подкачки только для памяти менеджер памяти полностью контролирует происходящее и отбирает страницы из пула пустых страниц.