изменение размера проекции файла после MapViewOfFile

Тема в разделе "WASM.BEGINNERS", создана пользователем vicegen, 13 авг 2007.

  1. vicegen

    vicegen New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    2
    Всем привет ! История примерно следующая: делаю проекцию файла размером FileSize+Xбайтов, затем в зависимости от формата заголовка записываю по смещению MapBase+Данные_из_заголовка+FileSize, проблема в том, что в случае исключения файл испортится... Можно ли как-нибудь изменить параметр размера проекции?? И еще, если промапить файл с FILE_MAP_COPY, то после UnMap всегда сбрасывается оригинал, а как сбросить копию?
     
  2. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    vicegen
    1. Исключение обрабатывать можно
    И размер обрезать через SetFilePointer + SetEndOfFile

    2. можно заюзать
    VirtualAlloc / ReadFile / WriteFile

    Тут работа идет через буффер, т.е. в случае краха, размер не изменится.
    И в файле не будет никаких изменений.

    Но как правило таким вот образом можно работать с файлами до 40 метров.
    Далее разница в скорости между этим способом и мэппингом уже ощущается...
     
  3. vicegen

    vicegen New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    2
    nitrotoluol
    Ага, огромное спасибо :) размер обрезал с помощью SetFilePointer + SetEndOfFile.
    А где хранится информация о созданных объектах, памяти итд, т.е допустим откуда VirtualQuery берет информацию о памяти и как ее изменить, где-то в системной области... ?
     
  4. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    Копию - WriteFile до UnMap'a