Всем привет ! История примерно следующая: делаю проекцию файла размером FileSize+Xбайтов, затем в зависимости от формата заголовка записываю по смещению MapBase+Данные_из_заголовка+FileSize, проблема в том, что в случае исключения файл испортится... Можно ли как-нибудь изменить параметр размера проекции?? И еще, если промапить файл с FILE_MAP_COPY, то после UnMap всегда сбрасывается оригинал, а как сбросить копию?
vicegen 1. Исключение обрабатывать можно И размер обрезать через SetFilePointer + SetEndOfFile 2. можно заюзать VirtualAlloc / ReadFile / WriteFile Тут работа идет через буффер, т.е. в случае краха, размер не изменится. И в файле не будет никаких изменений. Но как правило таким вот образом можно работать с файлами до 40 метров. Далее разница в скорости между этим способом и мэппингом уже ощущается...
nitrotoluol Ага, огромное спасибо размер обрезал с помощью SetFilePointer + SetEndOfFile. А где хранится информация о созданных объектах, памяти итд, т.е допустим откуда VirtualQuery берет информацию о памяти и как ее изменить, где-то в системной области... ?