Да, как указал wj32. Это связано с требованиями c2, которым NT соответствует с момента своего рождения. Однако, в зависимости от того, что вы пытаетесь сделать, вам, вероятно, стоит поискать разреженные файлы.

еделил эмпирически, что в моей системе файл с отображением в памяти, созданный с определенным размером, по умолчанию всегда полностью обнуляется. Например, используя вызов

HANDLE hMM = 
    CreateFileMapping (h,
                        NULL,
                        PAGE_READWRITE,
                        0,
                        0x01400000,//20MB
                        NULL);

... и запись в отображенный вид этого файла всегда приводит к 20-мегабайтному файлу, который полностью обнуляется, кроме случаев, когда я записал ненулевые данные.

Мне интересно, можно ли считать неинициализированные части файла нулями. Это поведение гарантировано на Windows в целом?

Ответы на вопрос(3)

Ваш ответ на вопрос