Portmon dla systemu Windows w wersji 3.03

Autor: Mark Russinovich

Opublikowano: 12 stycznia 2012 r.

DownloadPobierz portmon(226 KB)
Uruchom teraz z programu Sysinternals Live.

Wprowadzenie

Portmon to narzędzie, które monitoruje i wyświetla wszystkie działania portów szeregowych i równoległych w systemie. Ma zaawansowane funkcje filtrowania i wyszukiwania, które sprawiają, że jest zaawansowanym narzędziem do eksplorowania sposobu działania systemu Windows, wyświetlania sposobu używania portów przez aplikacje lub śledzenia problemów w konfiguracjach systemu lub aplikacji.

Portmon 3.x

Wersja 3.x programu Portmon oznacza wprowadzenie wielu zaawansowanych funkcji.

  • Zdalne monitorowanie: przechwytywanie danych wyjściowych debugowania w trybie jądra i/lub Win32 z dowolnego komputera dostępnego za pośrednictwem protokołu TCP/IP — nawet w Internecie. Można jednocześnie monitorować wiele komputerów zdalnych. Portmon zainstaluje nawet samo oprogramowanie klienckie, jeśli korzystasz z niego w systemie Windows NT/2K i przechwytuje z innego systemu Windows NT/2K w tej samej dzielnicy sieci.
  • Najnowsze listy filtrów: Portmon został rozszerzony o zaawansowane funkcje filtrowania i zapamiętuje najnowsze opcje filtrów z interfejsem, który ułatwia ich ponowne wybieranie.
  • Kopiowanie schowka: zaznacz wiele wierszy w oknie danych wyjściowych i skopiuj ich zawartość do schowka.
  • Wyróżnianie: wyróżnianie danych wyjściowych debugowania pasujących do filtru wyróżniania, a nawet dostosowywanie kolorów wyróżniania.
  • Dziennik do pliku: zapisz dane wyjściowe debugowania w pliku jako przechwycone.
  • Drukowanie: drukuj wszystkie lub część przechwyconych danych wyjściowych debugowania na drukarce.
  • Jeden ładunek pliku: Portmon jest teraz implementowany jako jeden plik.

W pliku pomocy online opisano wszystkie te funkcje i bardziej szczegółowo.

PortMon screenshot

Instalacja i użycie

Wystarczy wykonać plik programu Portmon (portmon.exe), a portmon natychmiast rozpocznie przechwytywanie danych wyjściowych debugowania. Aby uruchomić portmon w systemie Windows 95, należy pobrać aktualizację WinSock2 firmy Microsoft. Należy pamiętać, że w przypadku uruchomienia programu Portmon w systemie Windows NT/2K portmon.exe musi znajdować się na dysku spoza sieci i musisz mieć uprawnienia administracyjne. Za pomocą menu, klawiszy dostępu lub przycisków paska narzędzi można wyczyścić okno, zapisać monitorowane dane w pliku, wyszukać dane wyjściowe, zmienić czcionkę okna i nie tylko. W pomocy online opisano wszystkie funkcje Portmona .

Portmon rozumie wszystkie polecenia sterowania we/wy portów szeregowych i równoległych (IOCTLs) i wyświetla je wraz z interesującymi informacjami dotyczącymi skojarzonych z nimi parametrów. W przypadku żądań odczytu i zapisu portmon wyświetla pierwsze kilkadziesiąt bajtów buforu, używając znaku "". w celu reprezentowania znaków niedrukowalnych. Opcja menu Pokaż szesnastkowy umożliwia przełączanie się między danymi szesnastkowymi ASCII i nieprzetworzonymi danymi buforu.

Jak to działa: WinNT

Portmon GUI jest odpowiedzialny za identyfikowanie portów szeregowych i równoległych. Robi to, wyliczając porty szeregowe, które są skonfigurowane w obszarze HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm i portów równoległych zdefiniowanych w HKEY_LOCAL_MACHINE\Hardware\DeviceMap\Parallel Ports. Klucze te zawierają mapowania między nazwami urządzeń portów szeregowych i równoległych oraz nazwami dostępnymi dla systemu Win32.

Po wybraniu portu do monitorowania portmon wysyła żądanie do jego sterownika urządzenia, który zawiera nazwę NT (np. \device\serial0), które cię interesują. Sterownik używa standardowych interfejsów API filtrowania w celu dołączenia własnego obiektu urządzenia filtru do obiektu urządzenia docelowego. Najpierw użyje narzędzia ZwCreateFile , aby otworzyć urządzenie docelowe. Następnie tłumaczy uchwyt odbierany z narzędzia ZwCreateFile do wskaźnika obiektu urządzenia. Po utworzeniu własnego obiektu urządzenia filtru zgodnego z charakterystyką obiektu docelowego sterownik wywołuje element IoAttachDeviceByPointer w celu ustalenia filtru. Od tego momentu sterownik Portmon będzie widzieć wszystkie żądania skierowane do urządzenia docelowego.

Portmon ma wbudowaną wiedzę na temat wszystkich standardowych list IOCTL portów szeregowych i równoległych, które są podstawowym sposobem konfigurowania i odczytywania informacji o stanie aplikacji i sterowników z portów. Listy IOCTLs są zdefiniowane w pliku DDK \ddk\src\comm\inc\ntddser.h i \ddk\src\comm\inc\ntddpar.h, a niektóre są udokumentowane w DDK.

Jak to działa: Windows 95 i 98

W systemach Windows 95 i 98 interfejs GUI Portmon opiera się na dynamicznie załadowanym dysku VxD do przechwytywania działań szeregowych i równoległych. Sterownik urządzenia VCOMM (Virtual Communications) z systemem Windows służy jako interfejs dla urządzeń równoległych i szeregowych, dzięki czemu aplikacje, które uzyskują dostęp do portów pośrednio, korzystają z jego usług. Portmon VxD używa standardowego podłączania usługi VxD do przechwytywania wszystkich dostępu do funkcji VCOMM. Podobnie jak sterownik urządzenia NT, VxD Portmon interpretuje żądania wyświetlania ich w przyjaznym formacie. W systemach Windows 95 i 98 Portmon są monitorowane wszystkie porty, więc nie ma wyboru portu, takiego jak w NT.

DownloadPobierz portmon(226 KB)

Uruchom teraz z programu Sysinternals Live.