Я использую CreateFileMapping и MapViewOfFile, чтобы попытаться отобразить файл размером почти 1 ГБ. У меня были некоторые проблемы с расширением файла, поэтому я подумал, что попробую использовать CreateFileMapping размером 1 ГБ. Это больше, чем фактический файл, но оно хорошо работает с небольшими файлами.
Похоже, что я могу получить почти для сопоставления 1 ГБ, но не полностью. Это около 16 МБ, если не считать 1 ГБ.
Я использую программу SysInternals VMMap для просмотра макета фрагментов в моей тестовой программе. Это очень странно для меня. VMMap показывает мне, что после моей карты есть свободное пространство виртуальной памяти!
Почему я не могу его использовать?
Это выглядит примерно так:
0x3F6E0000 <- эта часть выделена моей тестовой программе <br>
0x406E0000 <- эта часть бесплатна и имеет размер почти 800 МБ! Дай это мне! </p>
Есть ли магия в этой области памяти сверх 0x40000000? Если так, то почему он позволил мне использовать 0x6E0000?
Кстати, тестовая программа использует MapViewOfFile в 64 отдельных сегментах, поэтому этот фрагмент 0x3F6E0000 не такой большой.