Очистка файла подкачки без перезагрузки

Тема в разделе "WASM.WIN32", создана пользователем vg, 5 июн 2010.

  1. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Можно ли как-нибудь программно из третьего кольца очистить файл подкачки Windows без перезагрузки системы? Хотя бы частично (приложения).
     
  2. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Врядли. Быть может через \\Device\HardDisk0
     
  3. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Но это непременно приведет к бсоду
     
  4. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    vg

    Цель? Удалить критичную инфу? наверное принудительно открыть (FileMapping?) заведомо здоровенный файлег и косвенно перетереть кэш?
     
  5. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    ++ Может перетереть-то его нельзя но читать наверное можна. Если искать специальные маркеры (точнее - их отсутствие) после "зачистки"....
     
  6. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    CreateFileMapping с первым параметром INVALID_HANDLE_VALUE, затем просто записать данные которые будут равны размеру файла подкачки, таким образом перетрется все содержимое.
     
  7. vg

    vg New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2007
    Сообщения:
    475
    Да.

    Судя по всему File Mapping то, что нужно. Правда, как я понимаю, так перепишется всё кроме части занятой ОС (сохраняемые на диске фрагменты ядра, драйвера и буфера памяти ядра).
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    TSS
    Неа. В конце концов система скажет "фи" и вернет NULL в ответ на MapViewOfFile, например, если свободной оперативной памяти в системе мало. Будет попросту некуда девать страницы из пейджфайла.
    + есть еще такое явление - когда пейджфайл заканчивается, а память продолжают просить, система просто банально увеличивает размер самого пейджфайла (в рамках допустимых пределов). Так что вместо заветной очистки есть риск нарваться просто на "разжирение" свопа и ничего более.

    если цель - удалить критическую инфу, то тогда можно наклепать драйвер, который пройдется по свободным страницам пейджфайла (там есть битовая карта свободных/занятых страниц) и подчистит их. Либо поставит хуки и будет подчищать автоматически.