Программа 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 был представлен ряд мощных возможностей.
В веб-справке детально описаны все перечисленные выше и другие возможности программы.
К началу страницы
Установка и использованиеДостаточно запустить программу 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:
Другие служебные программыНиже приведен перечень других средств наблюдения за системой, опубликованных на веб-узле Sysinternals:
К началу страницы |