Различные способы попросить Windows записать данные на диск - PullRequest
0 голосов
/ 24 августа 2010

Обычно, когда приложение записывает в один из своих файлов на диске, измененная временная метка файла изменяется.

Иногда, а в моем случае это приложение, написанное в ProvideX (производное Business Basic, я считаю), выполняющее запись, измененная временная метка не изменяется после записи. Такая программа, как MyTrigger, также не распознает операцию записи, но Sysinternals ProcessMonitor регистрирует активность диска.

Кажется очевидным, что существуют разные способы запросить у окон выполнение операций записи, и запрос можно затем подключить или зарегистрировать различными способами.

Мне нужно иметь возможность перехватывать операции записи, поступающие из приложения ProvideX. Будем весьма благодарны за любые указатели на различные способы записи Windows на диск и на доступные для них типы хуков.

Спасибо

1 Ответ

1 голос
/ 24 августа 2010

Процесс пользовательского режима может выполнять запись в файл либо с помощью функции API WriteFile, либо с помощью MMF, API-интерфейса файла с отображенной памятью (CreateFileMapping / MapViewOfFile / Блок записи в память).Может быть, ваше приложение идет MMF путь.MMF записывает в файлы совершенно иначе, чем API WriteFile, но они оба приводят к одной и той же конечной точке - IRP отправляется драйверу файловой системы.Драйвер фильтра файловой системы (например, используемый Sysinternals) может отслеживать запросы на запись на этом уровне IRP.Технически возможно провести различие между операциями записи, инициированными MMF и WriteFile, когда отправляются разные IRP (используется кэшированная и не кэшированная запись).Похоже, что функция мониторинга изменений каталога в Windows отслеживает только один тип IRP, и это заставляет MyTrigger пропустить изменение.

...