Portmon för Windows v3.03

Av Mark Russinovich

Publicerad: 12 januari 2012

Ladda nedPortmon(226 KB)
Kör nu från Sysinternals Live.

Introduktion

Portmon är ett verktyg som övervakar och visar all seriell och parallell portaktivitet i ett system. Den har avancerade filtrerings- och sökfunktioner som gör det till ett kraftfullt verktyg för att utforska hur Windows fungerar, se hur program använder portar eller spåra problem i system- eller programkonfigurationer.

Portmon 3.x

Version 3.x av Portmon markerar introduktionen av ett antal kraftfulla funktioner.

  • Fjärrövervakning: Avbilda kernelläge och/eller Win32-felsökningsutdata från alla datorer som är tillgängliga via TCP/IP – även via Internet. Du kan övervaka flera fjärrdatorer samtidigt. Portmon installerar till och med själva klientprogramvaran om du kör den på ett Windows NT/2K-system och samlar in från ett annat Windows NT/2K-system i samma nätverksområde.
  • Senaste filterlistor:Portmon har utökats med kraftfulla filtreringsfunktioner och kommer ihåg dina senaste filterval, med ett gränssnitt som gör det enkelt att välja om dem.
  • Urklippskopiering: Markera flera rader i utdatafönstret och kopiera innehållet till Urklipp.
  • Överstrykning: Markera felsökningsutdata som matchar markeringsfiltret och anpassa även markeringsfärgerna.
  • Logg till fil: Skriv felsökningsutdata till en fil när den avbildas.
  • Utskrift: Skriv ut hela eller delar av insamlade felsökningsutdata till en skrivare.
  • En fils nyttolast:Portmon har nu implementerats som en enda fil.

Hjälpfilen online beskriver alla dessa funktioner och mycket mer i detalj.

Skärmbild av PortMon

Installation och användning

Kör bara Portmon-programfilen (portmon.exe) så börjar Portmon omedelbart samla in felsökningsutdata. Om du vill köra Portmon på Windows 95 måste du få WinSock2-uppdateringen från Microsoft. Observera att om du kör Portmon på Windows NT/2K måste portmon.exe finnas på en enhet som inte är en nätverksenhet och du måste ha administratörsbehörighet. Menyer, snabbtangenter eller verktygsfältsknappar kan användas för att rensa fönstret, spara övervakade data i en fil, söka efter utdata, ändra fönsterteckensnittet med mera. Onlinehjälpen beskriver alla Portmons funktioner.

Portmon förstår alla I/O-kommandon för seriell och parallell port (IOCTLs) och visar dem tillsammans med intressant information om deras associerade parametrar. För läs- och skrivbegäranden visar Portmon de första dussin bytena i bufferten med hjälp av " " för att representera icke-utskrivbara tecken. Med menyalternativet Visa hex kan du växla mellan ASCII- och rå hexadecimala utdata från buffertdata.

Så här fungerar det: WinNT

Portmon-gränssnittet ansvarar för att identifiera seriella och parallella portar. Det gör den genom att räkna upp de serieportar som konfigureras under HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm och de parallella portar som definieras under HKEY_LOCAL_MACHINE\Hardware\DeviceMap\Parallel Ports. Dessa nycklar innehåller mappningar mellan seriellt och parallellt portenhetsnamn och Win32-tillgängliga namn.

När du väljer en port att övervaka skickar Portmon en begäran till sin enhetsdrivrutin som innehåller det NT-namn (t.ex. \device\serial0) som du är intresserad av. Drivrutinen använder standardfiltrerings-API:er för att koppla ett eget filterenhetsobjekt till målenhetsobjektet. Först används ZwCreateFile för att öppna målenheten. Sedan översätts handtaget som det tar emot från ZwCreateFile till en pekare för enhetsobjekt. När du har skapat ett eget filterenhetsobjekt som matchar målets egenskaper anropar drivrutinen IoAttachDeviceByPointer för att upprätta filtret. Från och med då ser Portmon-drivrutinen alla begäranden riktade till målenheten.

Portmon har inbyggd kunskap om alla standardserie- och parallellport-IOCTL:er, vilket är det primära sättet för program och drivrutiner att konfigurera och läsa statusinformation från portar. IOCTL:erna definieras i DDK-filen \ddk\src\comm\inc\ntddser.h och \ddk\src\comm\inc\ntddpar.h, och vissa dokumenteras i DDK.

Så här fungerar det: Windows 95 och 98

I Windows 95 och 98 förlitar sig Portmon-gränssnittet på en dynamiskt inläst VxD för att samla in seriell och parallell aktivitet. Enhetsdrivrutinen för Windows VCOMM (Virtual Communications) fungerar som gränssnitt för parallella och seriella enheter, så program som har åtkomst till portar använder indirekt sina tjänster. Portmon VxD använder standard-VxD-tjänstanslutning för att fånga upp alla åtkomster till VCOMM:s funktioner. Precis som NT-enhetsdrivrutinen tolkar Portmons VxD begäranden om att visa dem i ett eget format. På Windows 95 och 98 Övervakar Portmon alla portar så att det inte finns något val av port som på NT.

Ladda nedPortmon(226 KB)

Kör nu från Sysinternals Live.