Портмон для Windows версии 3.03
Марк Руссинович
Опубликовано: 12 января 2012 г.
Portmon(226 КБ)
Запустите сейчас из Sysinternals Live.
Введение
Portmon — это служебная программа, которая отслеживает и отображает все действия последовательного и параллельного портов в системе. Он обладает расширенными возможностями фильтрации и поиска, которые делают его мощным инструментом для изучения принципов работы Windows, просмотра того, как приложения используют порты, или отслеживания проблем в конфигурациях системы или приложений.
Портмон 3.x
Версия 3.x portmon знаменует собой введение ряда мощных функций.
- Удаленный мониторинг: Запись выходных данных отладки в режиме ядра и (или) Win32 с любого компьютера, доступного через TCP/IP, даже через Интернет. Вы можете одновременно отслеживать несколько удаленных компьютеров. Portmon даже установит свое клиентское программное обеспечение, если вы используете его в системе Windows NT/2K и собираете данные из другой системы Windows NT/2K в том же районе сети.
- Последние списки фильтров:Портмон был расширен с помощью мощных возможностей фильтрации, и он запоминает последние выбранные фильтры с интерфейсом, который упрощает их повторное выделение.
- Копирование буфера обмена: Выберите несколько строк в окне вывода и скопируйте их содержимое в буфер обмена.
- Выделение: Выделите отладочные выходные данные, соответствующие фильтру выделения, и даже настройте цвета выделения.
- Вход в файл: Запись выходных данных отладки в файл в качестве записываемого файла.
- Печатание: Печать всех или частично захваченных выходных данных отладки на принтер.
- Однофайтовые полезные данные:Portmon теперь реализованы как один файл.
В файле справки в строке описаны все эти функции и более подробно.
Установка и использование
Просто выполните файл программы Portmon (portmon.exe), и Портмон немедленно начнет запись выходных данных отладки. Чтобы запустить Портмон в Windows 95, необходимо получить обновление WinSock2 от корпорации Майкрософт. Обратите внимание, что при запуске portmon на Windows NT/2K portmon.exe должен находиться на диске, отличном от сети, и у вас должны быть права администратора. Меню, горячие клавиши или кнопки панели инструментов можно использовать для очистки окна, сохранения отслеживаемых данных в файл, вывода поиска, изменения шрифта окна и многого другого. В встроенной справке описываются все функции Portmon .
Portmon понимает все команды управления последовательными и параллельными портами ввода-вывода (IOCTLs) и отображает их вместе с интересными сведениями о связанных параметрах. Для запросов на чтение и запись Portmon отображает первые несколько десятков байтов буфера, используя "." для представления непечатаемых символов. Параметр меню Show Hex позволяет переключаться между ASCII и необработанным шестнадцатеричным выводом данных буфера.
Как это работает: WinNT
Графический интерфейс portmon отвечает за идентификацию последовательных и параллельных портов. Для этого перечисляются последовательные порты, настроенные в HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm и параллельные порты, определенные в HKEY_LOCAL_MACHINE\Hardware\DeviceMap\Parallel Ports. Эти ключи содержат сопоставления между именами устройств с последовательным и параллельным портом и именами устройств с поддержкой Win32.
При выборе порта для мониторинга Портмон отправляет запрос драйверу устройства, включающее имя NT (например, \device\serial0), которое вас интересует. Драйвер использует стандартные API фильтрации для подключения собственного объекта устройства фильтра к целевому объекту устройства. Во-первых, для открытия целевого устройства используется ZwCreateFile . Затем он преобразует дескриптор, который он получает обратно из ZwCreateFile в указатель объекта устройства. После создания собственного объекта устройства фильтра, который соответствует характеристикам целевого объекта, драйвер вызывает IoAttachDeviceByPointer для установки фильтра. С этого момента драйвер Portmon увидит все запросы, направленные на целевое устройство.
Portmon имеет встроенные знания обо всех стандартных последовательных и параллельных портах IOCTLs, которые являются основным способом настройки и чтения сведений о состоянии приложений и драйверов из портов. IoCTLs определяются в DDK-файле \ddk\src\comm\inc\ntddser.h и \ddk\src\comm\inc\ntddpar.h, а некоторые из них описаны в DDK.
Как это работает: Windows 95 и 98
В Windows 95 и 98 графический интерфейс Portmon использует динамически загруженный VxD для записи последовательного и параллельного действия. Драйвер устройства Windows VCOMM (Virtual Communications) служит интерфейсом для параллельных и серийных устройств, поэтому приложения, обращаюющиеся к портам, косвенно используют свои службы. Портмон VxD использует стандартный перехватчик службы VxD для перехвата всех доступа к функциям VCOMM. Как и драйвер устройства NT, VxD Portmon интерпретирует запросы для их отображения в понятном формате. В Windows 95 и 98 Portmon отслеживает все порты, чтобы не было выбора портов, как в NT.
Portmon(226 КБ)
Запустите сейчас из Sysinternals Live.