Задача такова: Дан 1 файл размеров в N байт, с интервалом в M сек. в файл записываются значения, причем файл не меняет своего размера. Файл создается и модифицируется на сетевом диске скажем K:\ программой работающей под управлением MS DOS. Данная программа очень нелюбит когда файл открывают по чтению, и если наступает момент,когда она хочет модифицировать файл, а при этом файл открыт по чтению, то она не может модифицировать файл. Данную программу я не имею права модифицировать. Но мне необходимо следить за изменением файла. Слышал, что есть Win API которые позволяют открыть файл так, что как только файл изменяется, то этот момент можно выловить. Прошу подсказать мне эти Win API. Спасибо и Удачи вам
...Хм. Может файл для асинхронных операций попробывать открыть? Хотя...//??? - NtWriteFile ...но перехватывать - в ядре. Подумав: - похоже перехватывать надо в DOC'е... не WINAPI есно.
Перехват IoCreateFile IoWriteFile. SDT хукать смысла не имеет, поскольку NTVDM работает с ядром напрямую, кроме NtCreateFile, ещё можно поискать в системе все дрова, помеченные определённым атрибутом как компоненты файловой системы и похукать их таблицы IRP. Вот тебе метод. Ешё можеш CIFS протокол разобрать и выставить IP фильтр. )))))))))
k3internal Ну не фигасе, это же какой исходник то получится, вы уверенны что после меня люди разберутся во всех этих CIFS , IP-фильтрах и т.д. Пока думаю сделать так, создать таймер , каждые M / 3 в сек. проверять не изменилась ли дата модификации у файла. Если изменилась, то он был модифицирован, если в течении M сек. файл не был модифицирован, то досовское ПО зависло, а это дежурному оператури сигнал о том что пора бы пошевелить мозгами )))