Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Отслеживание изменений файловой системы


Автор: Абабо 13.8.2006, 14:55
У меня есть довольно специфический вопрос, касающейся управления файловой системой. Есть ли возможность отслеживать изменения файлов и директорий (наличие, расположение, и.т.д.) на уровне Win API, не опускаясь на уровень ядра? Так, чтобы по завершению операции ввода/вывода файловой системы управление передавалось коду моего процесса? Обычный подход в такой ситуации – написание драйвера, подменяющего обработчик прерывания. Но можно ли реализовать отслеживание конфигурации дерева директорий и файлов на прикладном уровне Win API?

Автор: Akina 13.8.2006, 20:28
Цитата(Абабо @  13.8.2006,  15:55 Найти цитируемый пост)
можно ли реализовать отслеживание конфигурации дерева директорий и файлов на прикладном уровне Win API? 

Как ты себе это представляешь? поллингом? у тебя всю систему завкоматозит... я уж не говорю о том что сам процесс может подмерзнуть (или его остановят извне)...
Так что отслеживать по-любому надо факт попытки изменения ФС, а не ее изменение постфактум.

Автор: LSD 13.8.2006, 20:57
Отследить изменения файловой системы вполне возможно, например http://www.sysinternals.com/Utilities/Filemon.html умеет это делать (там же есть нужны ссылки на MSDN как это делать).

Автор: Абабо 14.8.2006, 13:14
Filemon инсталлирует драйвер при каждом своём запуске (внедряет безусловный переход на собственный обработчик прерывания в таблице прерываний; в более новых версиях ОС (например XP SP2) - через менеджер фильтра файловой системы). Всё это код режима ядра, я же спрашивал про прикладной уровень Win API...

Автор: bartram 16.8.2006, 07:29
Абабо, через Api этого не сделать

Автор: ne0n 16.8.2006, 16:10
А как же : FindFirstChangeNotification/FindNextChangeNotification/FindCloseChangeNotification и
 ReadDirectoryChangesW. Они как рас именно этим и занимаются. Или я чего-то не понимаю? 

Автор: Абабо 17.8.2006, 19:32
Цитата

А как же : FindFirstChangeNotification/FindNextChangeNotification/FindCloseChangeNotification и
 ReadDirectoryChangesW. Они как рас именно этим и занимаются. Или я чего-то не понимаю? 


Да, похоже на правду. Большое Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)