Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мониторинг файловых операций [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 приложения...


Наверх

Титульная страница Поиск, карта сайта Написать письмо