![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мониторинг файловых операций [D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
Xenon © (2003-11-09 04:34:00)Каким образом создать некоего демона, который висел бы в фоне и отлавливал операции над файлами (создание,удаление и тп) и, соответственно, при выполнении таких опреаций делал чего надо,например запись в журнал.
Интересует, собственно, механизм узнавания выполнения любой операции с файловой системой - може какие сообщения за это отвечают?..
Заранее спасибо.
Alex Konshin (2004-01-18 00:47:00) [1]Сказали же уже: IFS Kit
Есть книжки на буржуйском, про русский не знаю.
Pantera111 (2004-01-17 20:06:00) [2]А где можно почитать о том как этот драйвер-фильтр написать? Может примеры какие есть или статьи?
Ihor Osov'yak (2003-11-11 00:54:00) [3]MS:
FindFirstChangeNotification May Not Notify All Processes on File Changes
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q188321
:-)
Ну и больго неудобно с FindFirstChangeNotification и Ko работать..
В NT немного полегше, хотя бы ReadDirectoryChangesW - см.
http://msdn.microsoft.com/library/shared/searchtab/searchHandoff.asp?handoffurl=/isapi/gosearch.asp?TARGET=/us/dev/advanced_search.asp&stcfg=/library/searchtabconfig.xml&qu=ReadDirectoryChangesW&btnSearch=GO
Но имхо, гарантировано, и действительно полноценный мониторинг - только драйвер-фильтр.. В особенности - для операций чтения :-)
Alone (2003-11-10 14:45:00) [4](создание,удаление и тп)
смотри FindFirstChangeNotification, FindNextChangeNotification, FindCloseChangeNotification и Wait Functions
Leppard (2003-11-10 13:37:00) [5]2 Xenon:
Меня, кстати тоже интересует подобный вопрос и нигде ничего и никто конкретно не говорит. Если кому не трудно, ответьте на мыло подробнее.
clickmaker (2003-11-10 12:41:00) [6]ReadDirectoryChangesW
Alone (2003-11-10 11:44:00) [7]Может быть подойдет: FindFirstChangeNotification(
LPCTSTR lpPathName, // pointer to name of directory to watch
BOOL bWatchSubtree, // flag for monitoring directory or directory tree
DWORD dwNotifyFilter // filter conditions to watch for
);
Игорь Шевченко (2003-11-09 22:49:00) [8]Ihor Osov'yak © (09.11.03 11:42)
> они просто некоторые декларации из хидеров IFS выдернули
Если быть более точным, то из DDK. Из IFS там только одна структура _FILE_FS_ATTRIBUTE_INFORMATION
//
// These are prototypes for Filemon's Fast I/O hooks. The originals
// prototypes can be found in NTDDK.H
//
Ihor Osov'yak (2003-11-09 11:42:00) [9]2 [2] Alex Konshin © (09.11.03 06:54)
ну, сисинтерналс немного оригинально поступили в этом плане - они просто некоторые декларации из хидеров IFS выдернули, и включили в состав своих исходников.. Почему так утверждаю - до поры - времение исходники filemon у них свободно лежали на сайте, смотрел.. Сейчас убрали, но в комплектте с соотв. книгой Соломона и Русиновича они идут по прежнему..
Но впрочем, все равно спасибо за уточнение..
Да, вспомнил - также встречал в интернете свободно распространяемые декларации, претендирующие частично заменить хидера от IFS, которых в принцыпе достаточно для создания аналога filemon, при наличии DDK (ну и студио, естественно).. Но вот насколько "легальны" эти декларации - уже сказать не могу..
Alex Konshin (2003-11-09 10:32:00) [10]По крайней мере для 2K точно есть. У меня стоит XP IFS Kit и он включает и 2K.
AlexRya (2003-11-09 09:20:00) [11]Возможно я и ошибаюсь, но, по-моему, IFS есть только под XP.
А если не хочется работать с драйверами, то можно попробвать перехват API-шных функций для работы с файлами: CreateFile, WriteFile, ReadFile... Можно перехватывать только их расширенные версии (Ex). 100%-ных результатов это не дает!
Alex Konshin (2003-11-09 06:54:00) [12]Уточнение: смотреть в сторону IFS Kit, который не входит в состав DDK, более того, не может быть установлен на той же машине, где стоит DDK. Стоит более $900, но для российского программера это, как я понимаю, не проблема :).
Ihor Osov'yak (2003-11-09 05:12:00) [13]Блин, за последнюю неделю третий аналогичный вопрос.
В общем случае - драйвер-фильтр файловой системы. www.sysinternals.com
утиль filemon. Отдельная реализация для w9x и nt-ряда. Смротреть в сторону DDK. К сожалению, не совсем по пути с делфи. Конечно, на делфи можно сделать реестрирующую часть, если будет принято решения єту часть делать в виде win32 приложения...