FSD взаимосяви файловых объектов

Тема в разделе "WASM.WIN32", создана пользователем LuckyDevil, 16 ноя 2005.

  1. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Всем доброго!

    Хотелось бы услышать мнения сведующих людей в FSD.

    Сижу ломаю голову и вот над чем, есть ли связующие нити между файловыми объктами, попробую объяснить, что я имею ввиду.

    Пример: Вы переминовываете файл или расширение и копирование в другу дирикторию, в этом случае файловая система выполняет следующие шаги,

    1)открывает файл источник

    2)создает файл для записи

    3)читает данныеиз файла источника(вопрос куда?)

    4)закрывает файл источник

    5)записывает данные в созданный файл



    FCB у обоих файлов различные, оно и понятно, адреса куда и откуда производится запись\чтение тоже различные, есть хоть что-то чем можно было бы всязать эти файлы?
     
  2. Zufyxe

    Zufyxe New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    137
    Адрес:
    Russia
    Когда файл переименовывается, ничего с ним не происходит, никто его не читает. Изменяется только запись каталога.

    А вот если копируется:

    - в кэш она их читает. :)

    а потом просто связывает новый FILE_OBJECT с кэшем первого файла. Связующим звеном будет поле SECTION_OBJECT_POINTERS в FILE_OBJECT.
     
  3. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Zufyxe, а если я принудительно сбрасываю кэш, для первого файла, будет ли SECTION_OBJECT_POINTERS одинаков в этом случае
     
  4. Zufyxe

    Zufyxe New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    137
    Адрес:
    Russia
    А каким образом и в какой момент ты сбрасываешь кэш?
     
  5. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Zufyxe, вообще на сколько корректно сбрасывать кэш?

    я столько начитался о проблемах с кэшем, что как-только мой код дошел до IRP_MJ_CLEANUP, я тут же вписал код принудительного сброса кэша. После этого подсчет файловых объектов упорядочился, но двигаясь дальше я понял что в некоторых случаях, это приность большие неудобства.
     
  6. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Zufyxe с помощью CcFlushCache, MmFlushImageSection и CcPurgeCacheSection