|
|
| Посл.отвђт | Сообщен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: И вообще Мэппинг не предназначен для ЗАПИСИ. ] Не понял !!! |