Portmon för Windows v3.03

Av Mark Russinovich

Publicerad: 12 januari 2012

Laddaned Portmon(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 införandet av ett antal kraftfulla funktioner.

  • Fjärrövervakning: Samla in kernelläge och/eller Win32-felsökningsutdata från valfri dator som är tillgänglig via TCP/IP – även via Internet. Du kan övervaka flera fjärrdatorer samtidigt. Portmon installerar även sin klientprogramvara 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ätverk.
  • Senaste filterlistor:Portmon har utökats med kraftfulla filtreringsfunktioner och den kommer ihåg dina senaste filterval, med ett gränssnitt som gör det enkelt att välja dem igen.
  • Urklippskopia: Markera flera rader i utdatafönstret och kopiera innehållet till Urklipp.
  • Markera: Markera felsökningsutdata som matchar markeringsfiltret och även anpassa markeringsfärgerna.
  • Logga till fil: Skriv felsökningsutdata till en fil när den avbildas.
  • Utskrift: Skriv ut alla eller delar av avbildade felsökningsutdata till en skrivare.
  • Nyttolast med en fil:Portmon har nu implementerats som en fil.

Den onlinebaserade hjälpfilen beskriver alla dessa funktioner och 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 Windows 95 måste du hämta WinSock2-uppdateringen från Microsoft. Observera att om du kör Portmon på Windows NT/2K portmon.exe måste finnas på en enhet som inte är 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 teckensnitt för fönstret med mera. Onlinehjälpen beskriver alla Funktioner i Portmon.

Portmon förstår alla kommandon för seriell och parallell port-I/O-kontroll (IOCTLs) och visar dem tillsammans med intressant information om deras associerade parametrar. För läs- och skrivbegäranden visar Portmon de första dussintals byte 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å hexadecitautdata för buffertdata.

Så här fungerar det: WinNT

Det grafiska portmon-gränssnittet ansvarar för att identifiera seriella och parallella portar. Det gör den genom att räkna upp de seriella portar som är konfigurerade 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 enhetsnamn för seriella och parallella portar och win32-tillgängliga namn.

När du väljer en port som ska övervakas skickar Portmon en begäran till enhetsdrivrutinen 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änder den ZwCreateFile för att öppna målenheten. Sedan översätter den referens som den tar emot från ZwCreateFile till en pekare för enhetsobjekt. När drivrutinen har skapat ett eget filterenhetsobjekt som matchar egenskaperna för målet anropar den IoAttachDeviceByPointer för att upprätta filtret. Då ser Portmon-drivrutinen alla begäranden som är riktade till målenheten.

Portmon har inbyggd kunskap om alla standardserie- och parallella port-IOCTLs, vilket är det huvudsakliga sättet som program och drivrutiner konfigurerar och läser statusinformation från portar. IOCTLs 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

På 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 Windows VCOMM (Virtual Communications) fungerar som gränssnitt för parallella och seriella enheter, så program som har indirekt åtkomst till portar använder sina tjänster. Portmon VxD använder standard-VxD-tjänst hooking för att fånga upp all åtkomst till VCOMM:s funktioner. Precis som NT-enhetsdrivrutinen tolkar PortmonsVxD begäranden för att visa dem i ett användarvänligt format. På Windows 95 och 98 övervakar Portmon alla portar så att det inte finns något portval som i NT.

Laddaned Portmon(226 KB)

Kör nu från Sysinternals Live.