![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нотификационное сообщение - файл закрыт [D6]
MAXLMN © (2006-06-15 12:25:00)Люди, подскажите, - как можно
отловить закрытие файла неким приложением.
Я имею ввиду не проверку, используется
ли файл в данный момент, а возможность
определить момент его зарытия
Ihor Osov'yak (2006-06-15 13:37:00) [1]> Врешь ведь)
может, я особо над этим не задумывался.. Спасибо за подсказку..
Сергей М. (2006-06-15 13:36:00) [2]
> относительно "халявы" - много ньюансов
Да, разумеется.
Но на то она и халява, чтобы ради нее подсуетиться)
> Int2e вообще неперехватываемое на уровне ring3
Ой.
Врешь ведь)
Доступ к GDT/IDT всегда имеется.
Ihor Osov'yak (2006-06-15 13:30:00) [3]2 Сергей М. © (15.06.06 13:24) [11]
относительно "халявы" - много ньюансов, много апи нужно контролировать, ну а Int2e вообще неперехватываемое на уровне ring3 (а ведь не исключено, что хитрые системы могут юзать и его)..
Так что подитоживая - все таки правильный путь с драйвером фильтром в общем случае будет более халявный, в смысле - менее трулдозатратным.. Хотя в частном - не знаю, тут автору топика виднее..
Ihor Osov'yak (2006-06-15 13:26:00) [4]> Для отслеживания всех прочих изменений,
связянных с неким файлом, достаточно WIN API функций,
хотя бы потому, что этих апи уж очень много, уж очень много слоев (о существовании помимо win32 api так называемого native api слыхали, надеюсь?).. Также никто никому не запрещает напрямую вызвать Int 2E с соотв. параметрами - и лови ветра в поле.. Плюс помимо всего, не исключаю, что всякие сетевые запросы обрабатываются уже на уровне ring 0 (впрочем, если речь об одном приложении, конкретном - то можно о сетевых забыть)
> Почему ты не допускаешь существования подобных
методов решения данной проблемы?
Так как прарабатывалась в свое время похожая проблема, закончилось написанием подобия драйвера от файлмон...
Сергей М. (2006-06-15 13:24:00) [5]
> Для отслеживания всех прочих изменений,
> связянных с неким файлом, достаточно WIN API функций
Заметь - с неким файлом. А не с его хендлами, коих м.б. великое множество.
> где здесь свои дрова?
Для получения нотификаций об изменениях в объектах файловой системы "дрова" действительно не требуются. Но ведь ты спрашиваешь не об этом !!
А раз не об этом , то см. [1] про "халяву".
MAXLMN (2006-06-15 13:16:00) [6]> Сергей М. ©
Для отслеживания всех прочих изменений,
связянных с неким файлом, достаточно WIN API функций,
И где здесь свои дрова?
Почему ты не допускаешь существования подобных
методов решения данной проблемы?
Сергей М. (2006-06-15 13:11:00) [7]
> MAXLMN © (15.06.06 13:00) [8]
> Ядро конечно не катит
А без него - никак.
В ресурсах FileMonitor'а имеется образ готовогоKMD, причем на любой вкус. Достаточно изучить интерфейс взаимодействия с ним - и компромисс, считай, найден.
MAXLMN (2006-06-15 13:00:00) [8]Ядро конечно не катит. А насчет книги - надо посмотреть.
Тока вот код сегодня сдавать. А вообще, неужели
в винде нет ничего типа FindFirstChangeNotification,
только для данной цели?
Ihor Osov'yak (2006-06-15 12:55:00) [9]MAXLMN, купи книгу Соломона Русиновича, на диске есть исходники файлмонитора.. Для покупателей книги - фри для исследовательских целей, для комерционного юзания - нужно попросить разрешения у авторов (нигде явно не написано, платное оно или бесплатное).. Но, кстати, как я понимаю - посмотреть на исходники и соорудить нечто подобное никто не запрещает..
Сергей М. (2006-06-15 12:52:00) [10]Вариант написания собственного драйвера режима ядра тебе, надо понимать. еще более не подходит ?
MAXLMN (2006-06-15 12:45:00) [11]Даже если у FileMonitor есть свой API, мне этот вариант
всё равно никак не подходит
MAXLMN (2006-06-15 12:41:00) [12]Блин(тоже), я имею ввиду, что меня интересует Source Code
Ihor Osov'yak (2006-06-15 12:40:00) [13]блин, а что файмон не програмно реализован, а духом Господним? Или согласно идей Маркса-Ленина работает?
MAXLMN (2006-06-15 12:38:00) [14]Ты имеешь в виду FileMonitor?
Тогда не подойдёт.
Меня интересует программная реализация.
А насчёт API приложения -
оно заведомо неизвестно,так что не судьба
Ihor Osov'yak (2006-06-15 12:31:00) [15]можно, см. www.sysinternals.com filemon
драйвер-фильтр файловой системы.. Это по нормальному.. Но если допускается определенный элемент халявы - то перехват соотв. апи функций для соотв. приложения..