Слежение за изменением файла

Discussion in 'WASM.WIN32' started by EvilsInterrupt, Jan 10, 2007.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Blog Posts:
    0
    Задача такова:
    Дан 1 файл размеров в N байт, с интервалом в M сек. в файл записываются значения, причем файл не меняет своего размера. Файл создается и модифицируется на сетевом диске скажем K:\ программой работающей под управлением MS DOS. Данная программа очень нелюбит когда файл открывают по чтению, и если наступает момент,когда она хочет модифицировать файл, а при этом файл открыт по чтению, то она не может модифицировать файл.

    Данную программу я не имею права модифицировать. Но мне необходимо следить за изменением файла.
    Слышал, что есть Win API которые позволяют открыть файл так, что как только файл изменяется, то этот момент можно выловить.

    Прошу подсказать мне эти Win API.

    Спасибо и Удачи вам
     
  2. ViCooper

    ViCooper Victor

    Blog Posts:
    0
    ...Хм. Может файл для асинхронных операций попробывать открыть? Хотя...//???
    - NtWriteFile ...но перехватывать - в ядре.
    Подумав: - похоже перехватывать надо в DOC'е... не WINAPI есно.
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Blog Posts:
    0
    Нет, помню были определенные API`шки, но убей не помню :dntknw:
     
  4. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    FindFirstChangeNotification? Там только на изменение размера или времени последнего изменения.
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Blog Posts:
    0
    IceStudent
    Вроде оно, щас курю ман:
     
  6. doctor_Ice

    doctor_Ice New Member

    Blog Posts:
    0
    run.bat
    дос резидент который хукает открытие файла
    программа которую нельзя модифицировать
     
  7. k3internal

    k3internal New Member

    Blog Posts:
    0
    Перехват IoCreateFile IoWriteFile. SDT хукать смысла не имеет, поскольку NTVDM работает с ядром напрямую, кроме NtCreateFile, ещё можно поискать в системе все дрова, помеченные определённым атрибутом как компоненты файловой системы и похукать их таблицы IRP. Вот тебе метод. Ешё можеш CIFS протокол разобрать и выставить IP фильтр. )))))))))
     
  8. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Blog Posts:
    0
    k3internal
    Ну не фигасе, это же какой исходник то получится, вы уверенны что после меня люди разберутся во всех этих CIFS , IP-фильтрах и т.д.

    Пока думаю сделать так, создать таймер , каждые M / 3 в сек. проверять не изменилась ли дата модификации у файла. Если изменилась, то он был модифицирован, если в течении M сек. файл не был модифицирован, то досовское ПО зависло, а это дежурному оператури сигнал о том что пора бы пошевелить мозгами )))