· Начало · Статистика · Регистрацiя · Поиск · FAQ · Правила · Язык · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Работа с мапированными файлами

Посл.отвђт Сообщенiе


Дата: Мар 31, 2003 11:16:38

Создаю мапированный файл в памяти
CreateFile
CreateFileMapping
MapViewOfFile
...
FlushViewOf File
...
размером меньше 4096 байт, периодически его пополняю новыми данными, как только перехожу границу страници... получаю по рукам от виндовс
кто-нить подскажет как его увеличивать динамически, а то
мне лениво делать UnmapViewOfFile и перезагружть файл,
тем более, что софт расчитан на быструю работу с максимальной скоростью.


Дата: Мар 31, 2003 12:49:43

[ Аноним: ...как его увеличивать динамически... ]

Никак. В твоем случае надо сделать так:
Резервируешь кусок памяти VirtualAlloc,,,MEM_RESERVE достаточный для того, чтобы уместить максимально возможное ко-во данных. Ставишь SEH на код работающий с этим куском. В обработчике SEH определяешь произошел ли Access Violation при обращении к зарезервированному куску. Есла да, то выделяешь кусочек VirtualAlloc,,,MEM_COMMIT и т.д. В конце определяешь размер получившегося куска и сбрасываешь в файл.


Дата: Мар 31, 2003 14:38:59

Аноним
+ И вообще Мэппинг не предназначен для ЗАПИСИ.
Хотя в NTFS 5.0 придумали нечто подобное VirtualAlloc,,,MEM_RESERVE под названием разреженные файлы.


Дата: Апр 1, 2003 10:04:41

[ Edmond: И вообще Мэппинг не предназначен для ЗАПИСИ. ]

Не понял !!!