[Nyhetsbrev arkiv ^][< Volym 2, nummer 2][Volym 2, nummer 4 >]

System Internals Newsletter Volym 2, Nummer 3

http://www.sysinternals.com
Copyright © 2000 Mark Russinovich


14 juni 2000 – I det här problemet:

  1. REDAKTIONELLA

  2. NYHETER PÅ SYSINTERNALS

    • Regmon v4.25
    • ListDlls v2.22
    • TDImon v1.0
    • Kör automatiskt v1.1
    • LDMDump v1.0
    • Interna kolumner i april/juni
  3. INTERN INFORMATION

    • Versionshistorik för Windows NT
    • Lösning för Windows NT/2000-timer
    • Mappa om tangentbordet
    • Valv systemminnesmappning
    • Dold Windows 98-filsystemloggning
    • WinDev '00 West
  4. VAD KOMMER UPP

    • "Säkra" Windows 98-registernycklar

SPONSOR: WINTERNALS SOFTWARE

Nyhetsbrevet System Internals sponsras av Winternals Software, på webben på http://www.winternals.com. Winternals Software är den ledande utvecklaren och leverantören av avancerade systemverktyg för Windows NT/2K. Winternals Software-produkter inkluderar FAT32 för Windows NT 4.0, ERD Commander Professional Edition (avancerad startdiskkapacitet för Windows NT) och Remote Recover.

Med den nyligen lanserade TCPView Pro kan du övervaka TCP/IP-aktivitet på Windows NT 4.0-, Windows 2000- och Windows 95/98-system. Till skillnad från inbyggda TCP/IP-övervakningsverktyg som medföljer Windows (till exempel netstat) visar TCPView Pro vilken process som är associerad med varje TCP/IP-adress, vilket gör det enkelt att avgöra vilket program som ansvarar för specifika anslutningar och aktiviteter. TCPView Pro ger en dynamisk vy och en statisk vy. Den statiska vyn visar för närvarande öppnade lokala IP-adresser, processen som är associerad med varje slutpunkt och den fjärranslutna IP-adress som en slutpunkt är ansluten till. Med den dynamiska vyn, som inte är tillgänglig med något annat verktyg, kan du se TCP/IP-aktivitet efter process i realtid.

Hämta prisinformation och ladda ned en 14-dagars utvärderingsversion på http://www.winternals.com/products/tcpview.shtml.

Hej!

Välkommen till nyhetsbrevet System Internals. Nyhetsbrevet har för närvarande 22 000 prenumeranter.

Dave Solomon och jag är i slutskedet av wrapping upp "Inside Windows 2000, 3rd Ed.", vilket innebär att boken kommer att vara tillgänglig i mitten av augusti snarare än slutet av juli (det skulle inte vara en Microsoft-produkt utan en slip i fartyget datum). Nu när boken är i slutförd form, kan jag ge dig en genomgång av vad som finns i den. För det första har den cirka 50 % mer innehåll än föregående utgåva och innehåller fyra helt nya kapitel. Här är innehållsförteckningen:

  1. Introduktion
  2. Arkitektur
  3. Systemmekanismer
  4. Start och avstängning
  5. Hanteringsmekanismer
  6. Processer och trådar
  7. Minneshantering
  8. Säkerhet
  9. I/O-system
  10. Lagring
  11. Cachehanteraren
  12. Filsystem
  13. Nätverk

Liksom den andra utgåvan är boken full av experiment som demonstrerar de begrepp vi beskriver. Boken innehåller också en CD som har en kopia av hela SysInternals webbplats, plus en handfull verktyg som vi använder i experiment.

Två verktyg jag skrev specifikt för boken har tagits emot mycket väl av bokgranskarna. Den första heter LiveKD och låter dig köra någon av Windows 2000 kernel-felsökarna (i386kd, kd, WinDbg) på ett livesystem. Det innebär att du startar LiveKd, anger vilket felsökningsprogram du vill att det ska vara värd för, och sedan anger du felsökaren och har tillgängliga alla felsökningskommandon som du skulle göra om du felsöker en kraschdump. Praktiskt taget alla felsökningsbaserade experiment i boken kan köras med LiveKD, vilket innebär att du inte behöver ett andra system eller en seriell kabel för att utföra dem.

Det andra verktyget är ett tillägg för prestandaövervakning som gör att du kan visa livevärden för valfri kernelvariabel. Om du till exempel vill övervaka mängden icke-sidsidig pool som används med PerfMon väljer du variabeln MmAllocatedNonPagedPool.

Jag meddelar dig i nyhetsbrevet när boken är ute, men du kan förbeställa nu genom Amazon.com länk på www.sysinternals.com/links.htm. Som vanligt skickar du nyhetsbrevet vidare till vänner som du tror skulle tycka att det skulle vara intressant.

Tack!

-Markera

NYHETER PÅ SYSTEM INTERNALS

REGMON V4.25

Den senaste uppdateringen av Regmon Registry-övervakningsverktyget innehåller stöd för Windows 2000:s nya KeyNameInformation frågetyp för ZwEnumerateKey systemtjänsterna och ZwQuerykey . Den här funktionen exporteras inte för användning av Win32-program, men används av registerfunktionerna i ADVAPI32 som en del av systemets användning av registreringsregisterdatafiler per användare.

Det finns två sätt för Win32-program i Windows 2000 att öppna klassregistreringsdelen i registret: de kan ange HKEY_CLASS_ROOT eller ange HKLM\Software\Classes. Den första returnerar ett handtag till klassnyckeln per användare kombinerat med den globala klassnyckeln, och den andra returnerar ett handtag endast till den globala informationen. Funktionen ADVAPI32 Registry kan bara avgöra vilken som användaren har angett genom att undersöka det underliggande namnet på registernyckelreferensen som skickas av en användare, därav kravet på den nya frågetypen. Mer information finns i SDK-dokumentationen RegOpenKeyEx .

Ladda ned Regmon v4.25 på http:www.sysinternals.com/regmon.htm.

LISTDLLS V2.22

När en utvecklare skapar ett DLL-bibliotek (Dynamic Link Library) meddelar de länkaren "basadressen" för DLL:en, som är den adress som länkaren skapar relativ adressinformation för i DLL-avbildningsfilen. Om en DLL läses in på en annan adress än dess basadress måste inläsaren korrigera alla relativa adresser i den inlästa DLL-avbildningen för att ta hänsyn till skillnaden.

Dessa korrigeringar, eller omlokaliseringar, kan öka starttiden för ett program, så utvecklare vill uppenbarligen förhindra att omlokaliseringar sker. Det är dock tråkigt att titta igenom utdata från ett program som List DLL:er och jämföra belastningsadresser med basadress. Jag har därför gjort version 2.22 av ListDLLs ta ett nytt alternativ, , -rsom har det notera flyttade DLL:er i sina utdata.

Ladda ned ListDLLs v2.22 på http://www.sysinternals.com/listdlls.htm.

TDIMON V1.0

TDImon är den senaste i den kraftfulla SysInternals-övervakningsverktygssviten, som visar dig TCP- och UDP-aktivitet i systemet när den äger rum. Verktyget tar sitt namn från det faktum att det övervakar TCP- och UDP-aktiviteten i gränssnittet till TCP/IP-stacken, och det gränssnittet kallas TDI (Transport Driver Interface). Alla program- och drivrutins-TCP- och UDP-aktiviteter måste gå igenom det här gränssnittet, vilket innebär att ingen TCP- eller UDP-aktivitet visas av TDImon utan upptäckt.

TDIMon delar samma GUI som sina kusiner, Filemon, Regmon, Portmon och DebugView, och precis som de andra övervakningsverktygen visas namnen på processer som utför aktivitet, tidsstämplar och har filtrerings- och markeringsfunktioner. Detta gör TDIMon till ett idealiskt verktyg för nätverksfelsökning för administratörer och TCP/IP-felsökningsverktyg för programutvecklare. TDImon fungerar på Windows 95, 98, NT 4 och Windows 2000.

Ladda ned TDImon v1.0 på http://www.sysinternals.com/tdimon.htm.

LDMDUMP V1.0

Windows 2000 innehåller ett nytt partitioneringsformat som kallas mjuk partitionering som övervinner några av nackdelarna med partitionering av MS-DOS-format som alla Windows-operativsystem har använt hittills. En komponent som kallas LDM (Logical Disk Manager) hanterar volymer på diskar som är formaterade med mjuka partitioner, som kallas dynamiska diskar (diskar med MS-DOS-formatpartitionering kallas för grundläggande diskar). Förutom att de är mer robusta på grund av partitionsspeglingen som de implementerar, har dynamiska diskar fördelen att du kan skapa volymer med flera partitioner utan att behöva starta om systemet för att de ska identifieras och monteras av filsystemdrivrutiner.

Microsoft har inte dokumenterat formatet för LDM-partitioneringsdatabasen – eftersom de licensierade tekniken från Veritas, som har använt samma databas i sin UNIX-volymhanteringsprogramvara, kan licensavtal hindra Microsoft från att dokumentera den. Det kan så småningom finnas ett Win32 IOCTL-gränssnitt till LDM, men under tiden har jag listat ut formatet och skrivit ett verktyg som heter LDMDump som du kan använda för att peera inuti en dynamisk diskdatabas. LDMDump presenterar ungefär samma information som Windows 2000 Resource Kits DmDiag-verktyg, men LDMDump presenterar informationen på (tror jag) på ett mycket renare sätt. Jag erbjuder inte källkod för det här verktyget just nu, men om du är intresserad av att licensiera det för dina egna program vänligen kontakta mig.

Läs om LDM-databasen i min Windows 2000 Magazine kolumnen "Inside Storage, part 2" på http://www.sysinternals.com/publ.htm.

Ladda ned LDMDump v1.0 på http://www.sysinternals.com/ldmdump.htm.

AUTORUNS V1.1

Du kanske redan är bekant med AutoRuns, som vi har släppt under de senaste två månaderna. AutoRuns visar inställningarna för automatisk körning för varje plats i registret och . INI-filer där sådan information anges (eller så tänkte vi). Användarfeedback har gett oss en ledtråd till några platser som AutoRuns saknades på, och den senaste versionen visar dem nu.

Ladda ned AutoRuns v1.1 på http://www.sysinternals.com/misc.htm.

INTERNA KOLUMNER FÖR JUNI/JULI

Har du någonsin undrat exakt hur Win32-tjänster skiljer sig från standard Win32-program? Eller så kanske du har varit nyfiken på vad som gör att NT-start- eller avstängningssekvensen tar så lång tid. Jag svarar på dessa frågor och mer i min tvådelade juni/ juli-serien på Win32-tjänster i Windows 2000 Magazine.

I del 1 tar jag dig in i strukturen för en Win32-tjänst och förklarar hur de accepterar kommandon från klientprogram. Sedan börjar jag beskriva Service Control Manager (SCM), som ansvarar för att hantera Win32-tjänster, inklusive deras start och avstängning. I del 2 avslutar jag min beskrivning av startprocessen för tjänsten, som sker under systemstarten, och berättar sedan hur SCM stänger av tjänster. Jag tar också en titt på förbättringar Microsoft gjort till SCM i Windows 2000, och tar dig in i SrvAny Resource Kit-verktyget.

Windows 2000 Magazine-prenumeranter kan läsa kolumnerna online på http://www.sysinternals.com/publ.htm.

INTERN INFORMATION

VERSIONSHISTORIK FÖR WINDOWS NT

Som du har lärt dig från tidigare nyhetsbrev ökar versionsnumret för Windows NT (nu Windows 2000) varje dag när byggteamet genererar en ny version med dagens kodincheckningar. Med mina gamla beta- och versionskandidat-CD:er, samt hjälp från andra som har använt Windows NT längre än jag har gjort, har jag sammanställt en lista över de versionsnummer som motsvarar offentliga versioner (betaversioner, versionskandidater och fullständiga versioner). Observera att datumen är datumet för bygget, inte versionsdatumet för bygget. Win2K:s slutliga version, 2195, gjordes till exempel i december, men den släpptes till allmänheten i februari.

Skapa Frisläpp Datum
297 PDC 1992
340 NT 3.1 Beta 1 Oktober 1992
397 NT 3.1 Beta 2 Mars 1993
511 NT 3.1 Juli 1993
611 NT 3.5 Beta 1 April 1994
683 NT 3.5 Beta 2 Juni 1994
756 NT 3.5 RC 1 Augusti 1994
807 NT 3.5 September 1994
944 NT 3.51 Beta 1 Februari 1995
1057 NT 3.51 Maj 1995
1234 NT 4.0 Beta 1 Januari 1996
1314 NT 4.0 Beta 2 Maj 1996
1381 NT 4.0 Juli 1996
1671 NT 5.0 Beta 1 September 1997
1877 NT 5.0 Beta 2 September 1998
1946 Win2K RC0 av Beta 3 December 1998
2000.3 Win2K RC1 av Beta 3 Mars 1999
2031 Win2K Beta 3 April 1999
2072 Win2K RC1 Juli 1999
2128 Win2K RC2 September 1999
2183 Win2K RC3 November 1999
2195 Win2K December 1999

WINDOWS NT/2000 TIMER-UPPLÖSNING

Medan Windows NT/2000 tillhandahåller tjänster, inklusive QueryPerformanceCounter, som gör att du kan mäta gånger ned till upplösningen för Pentium-cykelräknaren, har dess intervalltidstjänsterna en något lägre upplösning. I själva verket är standardtidsupplösningen samma som systemets klockintervall, som är 10 ms på uniprocessor x86-system (dess vanligtvis 7,5 eller 15 ms på SMP-system). Program kan använda multimedietimerfunktionerna i användarutrymmet för att öka upplösningen till 1 ms, men drivrutinerna är ute i kylan om de vill ha högre upplösningar – fram till Windows 2000, det vill sa.

Windows 2000 introducerar en ny DDK-funktion, , ExSetTimerResolutionsom drivrutiner kan använda för att minska systemtimerns intervall till 1 ms. Vill du veta vad som händer under huven på multimedia timers och ExSetTimerResolution? Se "Inside Windows NT High Resolution Timers" at http://www.sysinternals.com/timer.htm.

SÄKER SYSTEMMINNESMAPPNING

Medan vi är på ämnet för nya Windows 2000-kernelfunktioner för drivrutinsutvecklare är det värt att MmGetSystemAddressForMdlSafenämna . I tidigare versioner av Windows NT var en drivrutinsutvecklare som ville hämta en systemadressutrymmespekare för en användares buffert eller fysiskt minne tvungen att skicka en MDL (minnesbeskrivningslista) som beskrev den fysiska bufferten till MmGetSystemAddressForMdl.

När du skapar en virtuell mappning i systemets adressutrymme används resursen System Page Table Entries (System PTEs), där en system-PTE krävs för varje fysisk sida som mappas. System-PTE:er är tyvärr begränsade resurser och kan ta slut om drivrutiner mappar stora mängder minne. Vad händer när MmGetSystemAddressForMdl det inte går att hämta system-PTE:er som krävs? Du skulle kunna tro att det skulle göra något användbart som att returnera en NULL som den mappade virtuella adressen. Men nej, det ger upp och blå skärmar systemet. Beteende som det återspeglar dåligt på den drivrutin som gör begäran.

Windows 2000's MmGetSystemAddressForMdlSafe gör vad MmGetSystemAddressForMdl som borde ha gjort: det returnerar en NULL om det inte finns tillräckligt med system-PTEs för att skapa mappningen för bufferten. Använd den här funktionen för att undvika en pinsam dump som pekar på din drivrutin. Om du har en drivrutin som körs på NT 4 och Windows 2000 är det värt att släppa två olika versioner, en för varje plattform, så att du kan dra nytta av detta nya API när du använder Windows 2000.

MAPPA OM TANGENTBORDET

Om du är som jag började du på ett UNIX-tangentbord där en ctrl-tangent fanns på tangentbordet vid den position som upptas på PC-tangentbord av caps-lock-tangenten. För att förbättra min skrivfrekvens och lära mig något om enhetsdrivrutinsutveckling i Windows 9x och Windows NT var ett av mina första drivrutinsprojekt på båda dessa operativsystem att implementera en drivrutin för ommappning av tangentbord. Du hittar Windows 9x-versionen på http://www.sysinternals.com/c2cap95.htm och Windows NT/2K-versionen på http://www.sysinternals.com/ctrl2cap.htm.

I Windows NT/2K finns det ett alternativ till att använda en tangentbordsfilterdrivrutin. Genom att definiera ommappning av skanningskoder i registret kan du helt omprogrammera tangentbordets beteende. I själva verket innehåller Windows 2000 Resource Kit ett verktyg som heter RemapKey som låter dig växla nycklar runt med hjälp av en grafisk representation av tangentbordet. Den här artikeln på Microsofts webbplats talar om tangentbordsmappning och hur det fungerar: http://www.microsoft.com/HWDEV/input/W2kscan-map.htm. Observera att verktyget också fungerar på NT 4.

Så låt oss säga att du inte har Windows 2000 Resource Kit och vill helst inte spendera pengar för det (jag rekommenderar att du gör det, dess fulla av alla typer av coola verktyg och dokumentation). Om så är fallet kan du mappa om tangentbordet manuellt. Microsoft-artikeln som jag nyss refererade till visar formatet för registernyckeln där tangentbordsdrivrutinen letar efter ommappningskoder (HKLM\ SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map), och den här artikeln, som också är tillgänglig från Microsoft, talar om för dig de skanningskoder som motsvarar nycklar: http://www.microsoft.com/hwdev/download/desinit/scancode.zip.

Om allt du vill är att byta caps-lock och kontroll (observera att mitt tangentbord filter helt göra sig av med caps-lock nyckel eftersom jag aldrig använder den), kan du kopiera följande text (inte inklusive "----" avgränsare) till en fil (ge den något som swapcaps.reg) och dubbelklicka på filen. Inställningarna importeras till registret och efter en omstart börjar gälla.

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,3a,00,1d,00,1d,00,3a,00,\
  00,00,00,00

Om du vill ångra mappningen tar du bara bort värdet Scancode Map från registret och startar om.

DOLD LOGGNING AV WINDOWS 98-FILSYSTEM

Har du någonsin bläddrat i din Windows 98-systemkatalog och lagt märke till en underkatalog med namnet \Windows\Applog? I den här katalogen hittar du förmodligen filer med namn som matchar dem för program som du nyligen har kört och tillägg som . LGC och . LGD. Öppna en av filerna i Anteckningar så ser du tydligt en spårning av filsystemaktivitet, komplett med filnamn, förskjutningar och öppna och stäng anrop. Genererar ett virus dessa loggar, eller är det ett hemligt verktyg som ingår i Windows 98 som rapporterar tillbaka till Microsoft dina programanvändningsmönster? Varken (om det var det heller, skulle du läsa om detta i handelspressen, inte i SysInternals nyhetsbrev). Dess del av funktionen "läser in dina vanligaste program upp till 36 procent snabbare" i Windows 98.

På grund av posten Taskmon i HKLM\Software\Microsoft\Windows\CurrentVersion\Runstartar Windows 98 ett tjänstprogram under starten med namnet Taskmon. Taskmon läser in en VxD med namnet FioLog (\Windows\System\FioLog.Vxd) för att installera en filsystemaktivitetskrok så att den kan se filanvändning under programstarter. Taskmon övervakar filsystemaktiviteten för alla program medan de startar förutom de som anges i HKLM\Software\Microsoft\Windows\CurrentVersion\Taskmon\ExcludeApps. FioLog registrerar programstartfilsystemaktivitet i Applog-katalogen. Loggfilerna som skapas börjar med tillägget . LGA. Det är oklart hur den avgör när en logg ska tas bort och när en ny ska skapas för ett program med ett nytt tillägg med den sista bokstaven inkrementerad. Här är en del av en exempelloggfil:

{
o da3034d0 d000 "C:\WINDOWS\NOTEPAD.EXE"
R da3034d0 0 40
R da3034d0 80 f8
R da3034d0 80 1c0
R da3034d0 7000 1000
R da3034d0 6000 e00
o da2b2610 156000 "C:\WINDOWS\SYSTEM\SHELL32.DLL"
R da2b2610 83000 1000
o da2b2f40 45110 "C:\WINDOWS\SYSTEM\SHLWAPI.DLL"
R da2b2f40 3c000 1000
R da2b2f40 3c000 1000
...

Raderna är indelade i fyra fält: den första är åtgärdskoden, där o är öppen, R läss och C är nära. Du ser W ingen (för skrivning) eftersom FioLog endast registrerar läsåtgärder under programstarten så att programstarten kan optimeras. Det andra fältet är den interna filpekaren. De tredje och fjärde fälten måste tolkas enligt radens åtgärdskod. Om åtgärdskoden är R är det tredje fältet filförskjutningen och det fjärde fältet är längden på läsningen. Men om åtgärdskoden är o är det tredje fältet öppna flaggor och det fjärde är namnet på filen som öppnas. I exemplet spårar du notepad.exe returnerar filpekaren da3034d0, som du kan se används i efterföljande läsåtgärder.

När du startar en defrag-åtgärd kör Defrag.Exe-programmet ett program med namnet CvtApLog (\Windows\System\Cvtaplog.exe) för att bearbeta loggfilerna. CvtApLog använder en DLL med namnet ClusAlgo.Dll (\Windows\System\Clusalgo.dll) för att ta reda på optimal klusterplacering med tanke på loggfilerna den läser och registrerar den här informationen i filer med namnet \Windows\Applog\Applog.d* som vägleder defragmenteringsprocessen. CvtApLog genererar också en fil med namnet \Windows\Applog\Optlog.txt som sammanfattar de program-startoptimeringar som loggfilerna dikterar. Här är det partiella innehållet i en Optlog.txt-fil:

Program Launch Optimization Log - Created Tue Jun 13 11:42:52 2000

Programs Eligible for Optimization:
Ord Flag ProgName Uses   LastExecDate Program Path                           
1        RUNDLL32 65     2000.06.13   C:\WINDOWS\RUNDLL32.EXE                
2        ATIPTAAB 31     2000.06.13   C:\WINDOWS\SYSTEM\ATIPTAAB.EXE         
3        NOTEPAD  22     2000.06.13   C:\WINDOWS\NOTEPAD.EXE                 
4        PING     9      2000.06.10   C:\WINDOWS\PING.EXE                    
…             
17       IEXPLORE 2      2000.06.01   C:\PROGRAM FILES\INTERNET EXPLORER\IEXPLORE.EXE

Programs Ineligible for Optimization:
Ord Flag ProgName Uses   LastExecDate Program Path                           
18  S    GREP     5      2000.06.13   C:\BIN\GREP.EXE                        
19  S    STRINGS  12     2000.06.13   C:\BIN\STRINGS.EXE                     
20  S    ATI2CWXX 31     2000.06.13   C:\WINDOWS\SYSTEM\ATI2CWXX.EXE         

Control Parameters:
Use app profile        = Yes
Minimum log size    = 1000
Maximum no use days = 90
Maximum apps        = 50

Flags for Ineligible Programs:
S = Log size smaller than <Minimum log size>
U = Program not used for more than <Maximum no use days>
P = No profile for program
E = Associated program no longer exists
D = Log deleted (may be combined with one of the above)

Windows 98:s möjlighet att flytta de delar av filer som användes under lanseringen av ett program till ett sammanhängande område på disken är teknik som Microsoft licensierat från Intel (för att se detta kör du Defrag.exe manuellt och du kommer att texten "Intel Application Launch Accelerator").

WINDEV '00 WEST

WinDev '00 East ägde rum förra veckan till en rekordpublik på 660 personer (det är allt hotellet kunde hålla). Talarna som är närvarande vid konferensen representerar de stora namnen inom alla områden av Windows-utveckling, inklusive alla från COM-guden Don Box till förarexperterna Jamie Hanrahan och Brian Catlin. Mina sessioner inkluderade "Windows 2000 Internals", "Advanced Drivers", "Windows NT/2000 File System Drivers" och "Cluster Server".

Om du är ledsen att du missade, har du tur eftersom du får en andra chans. WinDev '00 West hålls i Santa Clara, CA från 11-15 september, och alla samma talare kommer att vara där. Jag kommer att ge samma sessioner, och som på WinDev East, kommer att ge bort gratis SysInternals t-shirts till deltagare som svarar på mina frågor eller ställer särskilt insiktsfulla. Mer information finns på http://www.butrain.com/windev/west/default.htm.

VAD KOMMER UPP

"SÄKRA" WINDOWS 98-REGISTERNYCKLAR

Även om Windows 98-registret inte stöder säkerhet har Microsoft implementerat en mekanism för att definiera dolda registernycklar. Vilket program använder sig av den här dolda tekniken? Internet Explorer, naturligtvis. Nästa gång ska jag berätta vilka nycklar IE döljer och hur Windows 98 implementerar dem.


Tack för att du läser System Internals Newsletter.

Publicerad onsdag 14 juni 2000 19:08 av ottoh

[Nyhetsbrev arkiv ^][< Volym 2, nummer 2][Volym 2, nummer 4 >]