Всем доброго! Хотелось бы услышать мнения сведующих людей в FSD. Сижу ломаю голову и вот над чем, есть ли связующие нити между файловыми объктами, попробую объяснить, что я имею ввиду. Пример: Вы переминовываете файл или расширение и копирование в другу дирикторию, в этом случае файловая система выполняет следующие шаги, 1)открывает файл источник 2)создает файл для записи 3)читает данныеиз файла источника(вопрос куда?) 4)закрывает файл источник 5)записывает данные в созданный файл FCB у обоих файлов различные, оно и понятно, адреса куда и откуда производится запись\чтение тоже различные, есть хоть что-то чем можно было бы всязать эти файлы?
Когда файл переименовывается, ничего с ним не происходит, никто его не читает. Изменяется только запись каталога. А вот если копируется: - в кэш она их читает. а потом просто связывает новый FILE_OBJECT с кэшем первого файла. Связующим звеном будет поле SECTION_OBJECT_POINTERS в FILE_OBJECT.
Zufyxe, а если я принудительно сбрасываю кэш, для первого файла, будет ли SECTION_OBJECT_POINTERS одинаков в этом случае
Zufyxe, вообще на сколько корректно сбрасывать кэш? я столько начитался о проблемах с кэшем, что как-только мой код дошел до IRP_MJ_CLEANUP, я тут же вписал код принудительного сброса кэша. После этого подсчет файловых объектов упорядочился, но двигаясь дальше я понял что в некоторых случаях, это приность большие неудобства.