Программа Portmon для Windows (версия 3.03)

Автор: Марк Руссинович (Mark Russinovich)

Опубликовано 12 января 2012 г.


Введение

Программа Portmon предназначена для отслеживания и отображения всей активности последовательных и параллельных портов в системе. Благодаря своим богатым возможностям фильтрации и поиска эта программа является мощным инструментом для изучения принципов работы ОС Windows, отслеживания использования портов приложениями и обнаружения проблем в конфигурациях системы и приложений.

Программа Portmon работает в операционных системах Windows NT 4.0, Windows 2000, XP и Server 2003, а также в Windows 95 и Windows 98.

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


Portmon версии 3.x

В версии 3.x программы Portmon был представлен ряд мощных возможностей.

  • Удаленное отслеживание: сбор отладочной информации режима ядра и Win32 с любого компьютера, доступного по протоколу TCP/IP, даже через сеть Интернет. Можно одновременно отслеживать несколько удаленных компьютеров. В случае, если сбор данных будет производиться с компьютеров под управлением ОС Windows NT/2K и передаваться на компьютер с ОС Windows NT/2K в пределах сетевого окружения, программа Portmon самостоятельно установит клиентскую часть на удаленные компьютеры.

  • Списки недавно использованных фильтров: возможности программы Portmon были расширены мощными средствами фильтрации. В программе запоминаются недавно использованные фильтры, и пользовательский интерфейс позволяет легко выбирать их снова.

  • Копирование в буфер обмена: можно выделить несколько строк из окна с результатами и скопировать их содержимое в буфер обмена.

  • Выделение цветом: можно заданными цветами выделить отладочную информацию в соответствии с настройками фильтра выделения.

  • Запись журнала работы в файл: отладочную информацию можно по мере ее сбора записывать в файл.

  • Печать: можно напечатать на принтере всю отладочную информацию или ее часть.

  • Один файл: программа Portmon теперь реализована в виде одного файла.

В веб-справке детально описаны все перечисленные выше и другие возможности программы.

Снимок экрана программы PortMon

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


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

Достаточно запустить программу Portmon (portmon.exe), и она немедленно начнет собирать отладочную информацию. Чтобы использовать программу Portmon в ОС Windows 95 необходимо загрузить с сайта Майкрософт и установить обновление библиотеки WinSock2. Для запуска программы Portmon в ОС Windows NT/2K необходимы права администратора, а файл portmon.exe не должен быть расположен на сетевом диске. С помощью пунктов меню, горячих клавиш и кнопок панели инструментов можно очищать окно с результатами, сохранить собранные данные в файл, осуществлять поиск в собранных данных, изменить шрифт, а также осуществлять другие действия. В веб-справке описаны все возможности программы Portmon.

Программа Portmon поддерживает все команды управления (IOCTL) последовательными и параллельными портами и осуществляет вывод вызовов этих команд, а также дополнительной полезной информации, имеющей отношение к связанным с этими командами параметрам. Для запросов чтения и записи программа Portmon выводит первые несколько байт из буфера, заменяя все непечатаемые символы символом '.'. Пункт меню «Отображать значения Hex» позволяет переключаться между ASCII и шестнадцатеричным режимами отображения данных из буфера.

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


Принцип работы программы:

ОС WinNT

Графический пользовательский интерфейс программы Portmon отвечает за определение последовательных и параллельных портов. Информация о последовательных портах берется из раздела реестра HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm, а о параллельных портах — из раздела HKEY_LOCAL_MACHINE\Hardware\DeviceMap\Parallel Ports. В этих разделах содержится соответствие имен, доступных с помощью вызовов Win32, именам устройств последовательных и параллельных портов.

После выбора порта для отслеживания программа Portmon отправляет запрос драйверу устройства. Этот запрос содержит NT-имя требуемого устройства (например, \device\serial0). Драйвер использует стандартные фильтрующие программные интерфейсы и присоединяет свой собственный фильтрующий объект устройства к требуемому объекту устройства. Сначала с помощью вызова функции ZwCreateFile открывается требуемое устройство. Полученный дескриптор преобразуется в указатель на объект устройства. После создания собственного фильтрующего объекта устройства, который соответствует характеристикам требуемого устройства, драйвер устанавливает этот фильтр с помощью вызова функции IoAttachDeviceByPointer. Начиная с этого момента драйвер программы Portmon будет видеть все запросы, адресованные этому устройству.

В программу Portmon включена поддержка всех стандартных команд управления IOCTL последовательными и параллельными портами. В большинстве случае для настройки и чтения информации о состоянии из портов в приложениях и драйверах используются именно эти команды. Они определены в файлах \ddk\src\comm\inc\ntddser.h и \ddk\src\comm\inc\ntddpar.h из пакета DDK. Некоторые из них документированы в пакете DDK.

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


Принцип работы программы

ОС Win9x

В ОС Windows 95 и 98 графический пользовательский интерфейс программы Portmon осуществляет сбор данных об активности последовательных и параллельных портов с помощью динамически загружаемого VxD-драйвера. В приложениях, в которых осуществляется непрямой доступ к последовательным и параллельным портам, используется драйвер устройства виртуальных подключений Windows VCOMM. VxD-драйвер программы Portmon использует стандартное VxD-подключение к службам для перехвата вызовов всех функций, осуществляющих доступ к драйверу VCOMM. Аналогично NT-драйверу VxD-драйвер программы Portmon перехватывает запросы и отображает их в удобном формате. В отличие от ОС WinNT, в ОС Win9x отсутствует возможность выбора порта. Программа Portmon отслеживает сразу все порты.

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


Другие служебные программы

Ниже приведен перечень других средств наблюдения за системой, опубликованных на веб-узле Sysinternals:

  • RegMon — отслеживание обращений к реестру;

  • FileMon — отслеживание обращений к файловой системе;

  • Process Monitor — совокупность программ RegMon и FileMon;

  • DiskMon — отслеживание работы жестких дисков (для NT/Win2K);

  • DebugView — отслеживание вывода отладочной информации.

 

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

Другие служебные программы

Ниже приведен перечень других средств наблюдения за системой, опубликованных на веб-узле Sysinternals:

  • RegMon - монитор реестра;
  • FileMon - монитор файловой системой
  • Process Monitor - монитор процессов и потоков;
  • DiskMon - монитор работы жестких дисков;
  • DebugView - монитор вывода отладочной информации.

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