Программа FileMon для Windows (версия v7.04)

Авторы: Марк Руссинович (Mark Russinovich) и Брайс Когсуэлл (Bryce Cogswell)

Опубликовано 1 ноября 2006 г.

Введение

Примечание. Программы Filemon и Regmon заменены одной программой Process Monitor в версиях Windows, начиная с Windows 2000 SP4, Windows XP SP2, Windows Server 2003 SP1 и Windows Vista. Однако программы Filemon and Regmon оставлены для поддержки устаревших операционных систем, включая и Windows 9x.

Программа FileMon отслеживает и отображает в реальном времени все операции с файловой системой. Ее богатые возможности делают ее мощным инструментом, позволяющим наблюдать, как работает система Windows, отслеживать, как приложения используют файлы и библиотеки DLL, а также решать проблемы, связанные с настройкой файлов системы или приложений. Программа Filemon точно отмечает время выполнения операций открытия, чтения, записи или удаления файла или каталога. В столбце состояния выводится результат выполнения каждой из этих операций. Программа FileMon так проста в использовании, что вы станете экспертом за считанные минуты. Она начинает отслеживание сразу после запуска, а ее выходные данные можно сохранить в файл для автономного просмотра. В программе реализованы все возможности для поиска, а если вам кажется, что она выводит слишком много информации, просто настройте один или несколько фильтров.

Программа FileMon работает в системах NT 4.0, Windows 2000, Windows XP, Windows XP и Windows Server 2003 64-bit Edition, Windows 2003 Server, Windows 95, Windows 98 и Windows ME.

Filemon: снимок экрана

К началу страницы К началу страницы

Установка и использование

При возникновении вопросов или проблем посетите форум компании Sysinternals, посвященный программе Filemon.

Просто запустите программу FileMon (filemon.exe). Для этого необходимо иметь права администратора. Когда программа запускается в первый раз, она отслеживает все локальные жесткие диски. Чтобы очистить окно программы, выбрать или удалить тома для наблюдения, включая сетевые тома (Windows NT/2K/XP), сохранить полученные данные в файл, а также отфильтровать выходные данные или выполнить по ним поиск, можно воспользоваться командами меню, сочетаниями клавиш или кнопками панели инструментов.

Если при последнем запуске FileMon были настроены какие-либо фильтры, при следующем запуске программа попросит подтвердить их использование. Чтобы запустить FileMon без запроса подтверждения, достаточно указать в командной строке параметр /q. После запуска программа автоматически начинает регистрировать операции с файловой системой. Чтобы запустить FileMon, отключив запись операций, нужно указать в командной строке параметр /o.

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

Каждый раз, когда вы выходите из FileMon, программа запоминает настроенные фильтры, положение окна и ширину столбцов выходных данных.

К началу страницы К началу страницы

Фильтрация

В диалоговом окне «Filter» (Фильтр), которое открывается с помощью кнопки на панели инструментов или команды меню «Edit|Filter/Highlight» (Правка|Фильтр/Выделение), можно указать, какие данные должны отображаться в списке. Знак подстановки «*» соответствует произвольной строке; фильтры не зависят от регистра букв. В списке отображаются только те данные, которые определены во включающем фильтре и при этом не определены в исключающем фильтре. Строки в фильтре разделяются точкой с запятой, например: «filemon;temp». Примечание для Windows NT и 2000. Поскольку ввод и вывод для файловой системы выполняются асинхронно, фильтрацию по полю результатов выполнить нельзя.

Например, если настроены включающий фильтр «c:\temp» и исключающий фильтр «c:\temp\подкаталог», программа будет отслеживать обращения ко всем файлам и каталогам в папке c:\temp, за исключением тех, которые находятся в папке c:\temp\подкаталог.

С помощью знаков подстановки можно задавать сложные образцы для сопоставления, что позволяет, к примеру, отслеживать обращения к конкретным файлам со стороны конкретных приложений. Так, если настроен включающий фильтр «Winword*Windows», программа FileMon будет показывать только обращения приложения Microsoft Word к файлам и каталогам, в имени которых есть слово «Windows».

С помощью фильтра выделения можно указать, какие строки в списке следует выделить цветом. Цвета для выделения задаются с помощью пункта меню «Edit|Highlight Colors» (Правка|Цвета выделения).

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

К началу страницы К началу страницы

Выбор томов (Windows NT/2K/XP/2K3)

Для выбора или исключения томов для отслеживания необходимо использовать меню «Volumes» (Тома). Чтобы отслеживать доступ к любым сетевым ресурсам, включая удаленные общие папки и доступ по пути UNC к удаленным томам, можно воспользоваться пунктом «Network» (Сеть) этого меню.

К началу страницы К началу страницы

Ограничение объема выходных данных

Диалоговое окно «History Depth» (Число записей), которое можно открыть с помощью соответствующей кнопки на панели инструментов или пункта меню «Edit|History» (Правка|Записи), позволяет указать максимальное количество строк в окне вывода. Значение 0 означает отсутствие ограничений.

К началу страницы К началу страницы

Поиск по выходным данным

Выполнить поиск нужных строк в окне вывода можно с помощью команды меню «Find» (Поиск) или соответствующей кнопки на панели инструментов. Поиск в прямом направлении можно повторять с помощью клавиши F3, а в обратном — с помощью сочетания клавиш Shift+F3. Чтобы начать поиск с конкретной строки выходных данных, необходимо выделить ее, щелкнув самое левое поле этой строки (порядковый номер). Если ни одна строка не выделена, новый поиск начинается с первой (при выполнении поиска сверху вниз) или последней (при выполнении поиска снизу вверх) записи.

К началу страницы К началу страницы

Параметры

Программа FileMon может показывать либо время выполнения операций, либо их длительность. Меню «Options» (Параметры) и кнопка с изображением часов на панели инструментов позволяют переходить из одного режима в другой. В зависимости от текущего режима на панели инструментов изображается значок часов или секундомера. Если установлен режим показа длительности операции, то значение в поле «Time» (Время) соответствует числу секунд, которое потребовалось файловой системе для обслуживания конкретного запроса. Команда меню «Options|Show Milliseconds» (Параметры|Показывать миллисекунды) позволяет отображать время с точностью до миллисекунд.

Чтобы окно FileMon всегда отображалось поверх остальных окон, достаточно выбрать команду меню «Options|Always On Top» (Параметры|Поверх остальных окон). Кроме того, с помощью команды меню «Options|Auto Scrol» (Параметры|Автопрокрутка) или соответствующей кнопки на панели инструментов можно указать, чтобы список в окне FileMon не прокручивался.

К началу страницы К началу страницы

Именованные каналы и каналы передачи сообщений
электронной почты

Начиная с версии 4.1, программа FileMon может отслеживать операции файловой системы с именованными каналами и каналами передачи сообщений электронной почты для Windows NT/2K Именованные каналы обычно используются в качестве механизма взаимодействия в основных подсистемах NT/Win2K, таких как подсистема локального администратора безопасности (LSASS). Модель DCOM также использует именованные каналы. Кроме того, с ними работают и сетевые компоненты, например служба обозревателя. Чтобы увидеть операции с именованными каналами с помощью FileMon, достаточно выбрать в меню «Drives» (Диски) пункт «Named Pipes» (Именованные каналы), а затем выполнить какую-нибудь операцию на общем сетевом ресурсе или открыть приложение, такое как Regedt32, которое взаимодействует с подсистемой безопасности.

К началу страницы К началу страницы

Принцип работы FileMon

Для драйвера Windows 9x в основе работы FileMon лежит драйвер виртуального устройства Filevxd.vxd. Он загружается динамически, а в ходе своей инициализации устанавливает с помощью службы VxD фильтр файловой системы IFSMGR_InstallFileSystemApiHook, что позволяет ему встроиться в цепочку вызовов всех запросов к файловой системе. В ОС Windows NT в основе работы FileMon лежит драйвер файловой системы, который создает объекты устройств фильтра и привязывает их к конечным объектам устройств файловой системы, что позволяет программе просматривать все запросы IRP и FastIO, направляемые дискам. Когда программа FileMon регистрирует запрос на открытие, создание или закрытие файла или каталога, она обновляет внутреннюю хэш-таблицу, которая представляет собой список соответствий между внутренними дескрипторами файлов и путями к этим файлам. Если же выполняется какой-то вызов на основе дескриптора, программа ищет в таблице запись для этого дескриптора, чтобы вывести соответствующий полный путь к файлу. Если файл, на который ссылается дескриптор, был открыт до запуска FileMon, соответствующая запись в хэш-таблице не будет найдена, и тогда программа просто выведет значение дескриптора.

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

К началу страницы К началу страницы

Дополнительные сведения

Ниже перечислены дополнительные источники информации о файловой системе Windows 9x:

  • Пакет DDK для Windows 95/98;

  • Марк Руссинович и Брайс Когсуэлл, «Исследование многослойной файловой системы Windows 95», Dr. Dobb's Journal, декабрь 1995;

  • Вальтер Ани (Walter Oney), «Системное программирование для Windows 95», Microsoft Press, 1996 (эту книгу должен прочитать каждый программист VxD);

  • Стэн Митчелл (Stan Mitchell), «Внутреннее устройство файловой системы Windows 95», O'Reilly and Associates, 1996.

Ниже приведен список источников информации о файловой системе Windows NT/2000 и (или) программе FileMon:

  • Дэвид Соломон (David Solomon) и Марк Руссинович, «Внутреннее устройство Windows 2000, третье издание», 2000;

  • Марк Руссинович и Брайс Когсуэлл, «Исследование файловой системы Windows NT», Dr. Dobb's Journal, февраль 1997;

  • «Служебные программы Windows NT: взгляд изнутри», Windows NT Magazine, февраль 1999;

  • Раджив Нагер (Rajeev Nagar), «Внутреннее устройство файловой системы Windows NT», O'Reilly and Associates, 1997.

К началу страницы К началу страницы

Статьи о программе Filemon в базе знаний Майкрософт

В следующих статьях из базы знаний Майкрософт упоминается об использовании программы Filemon для диагностики или устранения различных ошибок:
К началу страницы К началу страницы

Загрузите
Загрузите программу Filemon (280 КБ)

Примечание: Это средство заменено программой Process Monitor.