[Nyhetsbrev arkiv ^][< Volym 3, nummer 1][Volym 4, nummer 1 >]

System Internals Newsletter Volym 3, Nummer 2

http://www.sysinternals.com
Copyright (C) 2001 Mark Russinovich


20 augusti 2001 – I det här problemet:

  1. REDAKTIONELLA

  2. NYHETER PÅ SYSINTERNALS

    • Process Explorer v5.1
    • Hantera v2.0
    • PsInfo v1.1
    • PsExec v1.24
    • PsLogList v2.07
    • Windows XP-källlayout
    • FelsökView v4.13
    • PageDefrag v2.1, Contig v1.41
    • Sysinternals på Microsoft
  3. INTERN INFORMATION

    • Inuti Windows 2000, Den interaktiva DVD:en
    • Markera datumet: Russinovich och Solomon undervisar tillsammans i Austin
    • Hantering av kommandoradsdiskar
    • WINHEC 2001 bilder online
    • Nya filterdrivrutinsgränssnitt för filsystem i XP
    • Krascha Windows med ett tangentstreck
    • Windows XP Prefetching
    • Windows .NET Anslut ions
  4. VAD KOMMER UPP

    • Mina itaniumupplevelser

SPONSOR: WINTERNALS SOFTWARE

Sysinternals Nyhetsbrev 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/XP. Winternals Software-produkter inkluderar FAT32 för Windows NT 4.0, NTFSDOS Professional Edition (en läs-/skriv-NTFS-drivrutin för DOS) och Remote Recover.

Winternals är stolt över att tillkännage Defrag Commander version 1.31, den snabbaste, mest grundliga enterprise-defragmenter som finns tillgänglig. Nu kan du hantera defragmenteringsscheman i hela Windows-företaget från en enkel MMC-snapin - utan att ens behöva installera någon klientprogramvara på dina NT- eller Windows 2000-system. En 10-systemlicens är tillgänglig för onlineköp för endast $ 169, och aggressiva kvantitetsrabatter är tillgängliga. Besök http://www.winternals.com/39 för mer information eller för att ladda ner och använda gratis i 30 dagar.

Hej!

Välkommen till Sysinternals nyhetsbrev. Nyhetsbrevet har för närvarande 33 000 prenumeranter.

Jag använder datorer i flera olika kapaciteter: som programutvecklare; som användare; och som systemadministratör (för mitt eget nätverk av utveckling och testsystem). Eftersom jag vill nå den bredaste målgruppen för Sysinternals freeware verktyg och Winternals kommersiella produkter, de flesta verktyg mål på minst Windows NT 4 via Windows XP, och många också köras på Windows 95 via Windows Me. Majoriteten av de verktyg jag skriver är systemnivå, vilket innebär att de ofta innehåller specialfallskod för en eller flera av de olika Windows-varianterna. Tyvärr finns det betydande skillnader mellan användargränssnitt och kernel mellan Windows NT-linjen och Windows 9x-linjen, och även skillnader mellan versioner från samma rad.

Jag brukade utföra testning genom att ha flera felsökningssystem, alla konfigurerade för att multiboot de Windows-smaker som jag har räknat upp och starta i en version, testa och sedan starta om till nästa. Förutom att vara långsam skulle testning ibland skeva genom att störa spillning av mellanliggande testversioner av verktyg som jag inte hade rensat upp ordentligt. Även om jag fortfarande har en samling multibooting-system för felsökning av problem, har en innovativ produkt som heter VMWare (www.vmware.com) gjort mina testcykler snabbare och enklare.

VMWare är en virtuell datormiljö som du använder för att skapa virtuella datorer (gäster) som körs ovanpå Windows NT-, Windows 2000- eller Linux-installationer (värdar). En gäst kan köra de flesta varianter av Windows, DOS och Linux. Dess förvirrande att se en version av ett operativsystem som körs ovanpå en annan, särskilt när du gör en virtuell dator helskärm - det finns praktiskt taget inget sätt att upptäcka att du inte sitter på skärmen på en Linux-dator i stället för en Linux-dators virtuella skärm som körs ovanpå Windows 2000, till exempel . En virtuell dator är en programvaruinställd ruta som kapslar in operativsystemet och programmen som körs på den virtuella datorn så att den virtuella datorns programvara fångar upp åtkomsterna när de försöker interagera med den maskinvara som de tror finns. Den virtuella datorns programvara skapar virtuella enheter som fungerar som noggrant kontrollerade surrogater till verklig maskinvara eller virtuell maskinvara. När till exempel ett program som körs på en virtuell dator som visas i ett fönster skrivs till den virtuella datorns visningsminne, uppdaterar den virtuella datorns programvara innehållet i fönstret som representerar den virtuella datorns visning i stället för att låta åtkomsterna röra det verkliga videominnet. Om den virtuella datorn kördes i helskärmsläge skulle programvaran för den virtuella datorn tillåta att sådana åtkomster manipulerar videominnet direkt.

Den virtuella datorns kapacitet gör VMWare användbart, eftersom du kan ha valfritt antal "testsystem" som ligger runt hårddisken. Det som gör VMWare ännu mer kraftfullt är det faktum att du kan "pausa" en virtuell dator, spara dess tillstånd på disken och sedan återuppta den inom några sekunder för att återställa tillståndet den hade när du stängde av den. Men det är inte allt. Jag använder en funktion som kallas "icke-beständiga diskar", där VMWare startar en virtuell dator med sina virtuella diskar som innehåller det innehåll som du har definierat (till exempel med bara en grundläggande os-installation) och sedan spårar ändringar så att du kan ångra dem och återgå till starttillståndet. Om jag installerar testversioner av ett verktyg och sedan måste se till att jag är tillbaka i ett rent tillstånd som inte återspeglar någon av verktygets ändringar, ångrar jag helt enkelt ändringarna. Jag tycker också att VMWare är användbart i mina användar- och systemadministratörsroller. När jag laddar ned ett program som jag inte är säker på att jag vill behålla, snarare än att eventuellt äventyra mitt utvecklingssystem eller fylla det med kvarlämnat skräp när jag avinstallerar ett program, försöker jag helt enkelt på en virtuell dator med en icke-beständig disk först.

Det finns några relativt små nackdelar med den aktuella versionen som har hindrat mig från att använda mina riktiga felsökningsdatorer lika mycket som jag gör. Den första är att eftersom de virtuella datorerna inte stöder DirectX kan du inte köra Numegas SoftICE-felsökningsprogram förutom med den virtuella datorn med en skärmupplösning på 640x480. Den andra är att VMWares virtualisering av serieportar är begränsad på ett sätt som förhindrar kernelfelsökning med hjälp av Windbg eller Kd antingen mellan värden och en gäst eller mellan gäster. Det senare problemet bör dock åtgärdas i nästa större VMWare-version.

Det som är särskilt intressant med VMWare är att fram tills VMWare visade något annat ansåg datorforskare huvudsakligen att det var omöjligt att virtualisera x86-arkitekturen i programvara tillräckligt bra för att köra ett omodifierat operativsystem utan oöverkomlig prestandaförsämring. Utmaningarna är betydande, särskilt när det gäller virtualisering av maskinvaruenheter, och VMWares framgång ses som ett genombrott – så mycket att VMWare nyligen publicerade ett "best of conference"-dokument om hur de implementerade enhetsvirtualisering vid den årliga tekniska USENIX-konferensen. Du kan läsa tidningen på http://vmware1.m0.net/m/s.asp?HB4162878203X1075673X73339X.

På tal om USENIX Technical Conference var jag också medförfattare till en artikel publicerad där, Minnesbaserade webbservrar med höga prestanda: Kernel- och User-Space Performance (http://www.sysinternals.com/files/webserver.pdf). I artikeln beskrivs en del av den innovativa forskning jag deltog i när jag arbetade på IBM Research. Arbetets bidrag är inom området kernel-läge webbserveracceleration, och förutom att bidra till arkitekturen var jag ansvarig för mycket av implementeringen på Windows NT och Windows 2000. Projektet var så framgångsrikt att vi konsekvent höll SPECWeb världsrekord för webbtjänstprestanda, det släpptes som en fortfarande utvecklande IBM-produkt som heter IBM Netfinity Web Server Accelerator, och både Microsoft och Linux-communityn har införlivat flera av de viktigaste idéerna i sina egna produkter (till exempel IIS för Windows 2000 och Tux på Linux).

Skicka nyhetsbrevet till vänner som du tror kan vara intresserade av dess innehåll.

Tack!

-Markera

NYHETER PÅ SYSINTERNALS

PROCESS EXPLORER V5.1

Process Explorer är det nya namnet på HandleEx, ett verktyg för flera funktioner som visar detaljerad information om processer, de DLL:er som de har läst in och handtagen för operativsystemresurser som de har öppna. Tillsammans med det nya namnet introducerar de senaste versionerna av Process Explorer en mängd nya funktioner, inklusive effektiv automatisk uppdatering, en cpu-användningskolumn, möjligheten att ändra processprioriteringar och rapportering av processsessions-ID:n om systemet är en terminalserver. Dessutom visas mycket mer information om processer. Du kan till exempel visa listan över tjänster som körs i en process (om tillämpligt), granska en process miljövariabler och visa kommandorader för processer. Med hjälp av ett nytt sorteringsalternativ som kallas "processträd" kan du grafiskt se relationerna mellan överordnade och underordnade processer, något som kan hjälpa dig att identifiera en process syfte. Process Explorer körs på alla Windows 9x-versioner samt Windows NT 4 via Windows XP.

Något som kanske inte är omedelbart uppenbart i Process Explorers gränssnitt är dess möjlighet att visa vilka processer som har en viss fil eller katalog öppen. Växla visning för att hantera läget och ange namnet på filen eller katalogen i fråga i sökdialogrutan. Sökfunktionen används oftast för att spåra processen som hindrar dig från att ta bort eller byta namn på en fil eller katalog, men du kan använda den för att visa processer som har specifika DLL:er inlästa.

Ladda ned Process Explorer v5.1 på http://www.sysinternals.com/ntw2k/freeware/procexp.shtml.

HANTERA V2.0

Handle är kommandoradsversionen av Process Explorers funktioner för handtagsvisning som gör att du kan se handtagen för operativsystemresurser, till exempel filer, som processerna har öppna. I vissa fall är användning av Handle ett snabbare sätt att identifiera en process som har en fil eller katalog öppen än att använda Process Explorers sökfunktion, eftersom du bara anger en del av filens eller katalogens namn på kommandoraden Handle. Förutom effektivare sökning av referensnamn fungerar Handle 2.0 nu på Windows 95/98/Me.

Ladda ned Handle v2.0 at http://www.sysinternals.com/ntw2k/freeware/handle.shtml.

PSINFO V1.1

Det senaste tillägget till PsTools-paketet med administrativa verktyg är PsInfo. PsInfo är ett kommandoradsverktyg som rapporterar en dators maskinvaru- och operativsystemegenskaper. Den anger till exempel vilket operativsystem som körs, inklusive service pack-numret, installations- och förfallodatum (om tillämpligt) och konfiguration (t.ex. domänkontrollant, medlemsserver). Den visar också typ, hastighet och antal processorer på datorn och mängden fysiskt minne som är installerat. Den här informationen gör PsInfo praktiskt för systemidentifiering eller inventering. Precis som alla verktyg i PsTools-sviten körs PsInfo på den lokala eller fjärranslutna Windows NT-, 2000- eller XP-datorn.

Ladda ned PsInfo v1.1 på http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml.

PSEXEC V1.24

Med PsExec kan du starta processer på fjärrsystem utan att behöva installera någon programvara manuellt i fjärrsystemet, så länge systemet finns i ditt nätverksområde. PsExecs styrka ligger i dess stöd för omdirigerat konsolprogram I/O, där det hanterar ett fjärrkonsolprograms tangentbordsinmatning och textutdata som om det kördes på ditt lokala system.

Den senaste versionen av PsExec stöder flera processer som körs på samma fjärrsystem, så att du kan fjärröppna flera kommandotolker i ett annat system, till exempel. Det har också ett nytt "force copy"-alternativ som låter dig ange att du vill att PsExec ska kopiera en fil till en fjärrdator för körning och ersätta alla befintliga versioner.

Ladda ned PsExec v1.24 på http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.

PSLOGLIST V2.07

PsLogList, ett annat PsTools-verktyg, dumpar händelseloggar från det lokala systemet eller ett fjärrsystem. Till skillnad från eloglist, verktyget Windows 2000 Resource Kit med samma syfte, visar PsLogList en posts fullständiga händelsesträng och när fjärrloggar dumpas använder den händelseloggens strängresursfiler från fjärrsystemet i stället för från den lokala.

Version 2.07 av PsLogList innehåller en kommandoradsväxel så att du kan dirigera den till att dumpa utökad information om händelseloggposter (ytterligare information som kan associeras med en post) och en ny växel så att du bara kan visa posterna från de senaste dagarna.

Ladda ned PsLogList v2.07 på http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml.

WINDOWS XP-KÄLLLAYOUT

Har du någonsin undrat hur Microsoft organiserar källkoden som utgör Windows NT/2000/XP-kerneln? Det gjorde jag också och insåg att informationen är offentligt tillgänglig. När Microsoft släpper en ny version av Windows 2000/XP släpps flera versioner:

  • en "kostnadsfri" uniprocessorversion
  • en "kostnadsfri" uiniprocessorversion som stöder mer än 4 GB fysiskt minne
  • en "kostnadsfri" version med flera processorer
  • en "kostnadsfri" version med flera processorer som stöder mer än 4 GB fysiskt minne
  • en "kontrollerad" version av flera processorer
  • en "kontrollerad" flerprocessorversion som stöder mer än 4 GB fysiskt minne

För totalt 6 versioner. Det som skiljer den "kostnadsfria" från den "kontrollerade" är inte det faktum att den "kostnadsfria" versionen är kostnadsfri (inte den), utan att den "kontrollerade" versionen, som ingår i MSDN CD-uppsättningen, innehåller kod och data som hjälper till med felsökning av operativsystem och enhetsdrivrutiner. Den "kostnadsfria" versionen kompileras helt enkelt utan den extra kod som ingår i villkorsstyrda kompileringsuttryck.

Exempel på extra markerad kod är felsökningsuttryck som rapporterar vad operativsystemet gör, mer rigorös konsekvenskontroll av parametrarna som skickas till kernellägesfunktioner från enhetsdrivrutiner och "försäkran"-instruktioner. En kontrolluttryck validerar en utvecklares antagande om villkor som gäller för ett kodområde. Om en pekare till exempel ska peka på en datastruktur med en identifierande signatur kan en utvecklare infoga en försäkran om detta. Vad händer när påståendets antagande överträds? Det beror på försäkran, men när det gäller de som ingår i de markerade versionerna skrivs ett felsökningsutdatameddelande ut och sedan utlöses en felsökningsbrytpunkt så att kernelfelsökaren aktiveras (eller, om inget felsökningsprogram är aktivt, inträffar en krasch som förhoppningsvis genererar en dumpfil som kan undersökas senare).

För att göra det enkelt att identifiera de problem som fångas av kontroller skriver de intyg som används i den kontrollerade versionen ut filen, funktionen och radnumret på försäkrans plats. Jag kan visa källträdslayouten genom att extrahera dessa strängar med mitt "strängar" strängextraheringsverktyg och organisera dem i en java-trädvy.

Visa Windows XP-källlayouten och läs mer om försäkran på http://www.sysinternals.com/ntw2k/info/xpsrctree.shtml (observera att IE visar en varning om att sidan läses in långsamt. Stäng det så ser du trädet).

DEBUGVIEW V4.13

DebugView är ett utvecklarverktyg som gör att du kan samla in felsökningsutdata från program eller drivrutiner i det lokala systemet eller en fjärransluten – även från flera system samtidigt. Den senaste versionen lägger till kompatibilitet med Windows XP RC 1. DebugView fungerar på Windows 9x, Windows Me, Windows NT, Windows 2000 och Windows XP.

Ladda ned DebugView v4.13 på http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.

PAGEDEFRAG V2.1, CONTIG V1.41

PageDefrag och Contig ligger högst upp på de mest populära Sysinternals-nedladdningarna. PageDefrag defragmenterar kärnsystemdatafiler vid starttiden och Contig är ett kommandoradsfildefragmenteringsverktyg. De senaste versionerna av dessa verktyg har en förbättrad defragmenteringsmotor för Windows 2000 och var och en har några av sina egna förbättringar.

Förutom defragmentering av register- och växlingsfiler defragmenterar den senaste versionen av PageDefrag även händelseloggfiler. Och på samma sätt som Chkdsk i Windows 2000 har PageDefrag nu en 3-sekunders nedräkning under startprocessen under vilken du kan trycka på valfri tangent för att få den att hoppa över defragmentering.

Det som gör Contig unikt är det faktum att du kan använda det för att defragmentera enskilda filer, hela kataloger eller en hel disk. Contig syftar till att optimera vissa filer som är viktiga för programmets prestanda eftersom det, till skillnad från kommersiella defragmenterare, inte konsoliderar ledigt utrymme för att förhindra framtida fragmentering på en disk. Förutom den förbättrade defragmotorn har den nya Contig bättre utdataformatering både i icke-utförliga och utförliga lägen.

Ladda ned PageDefrag v2.1 på http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml.
Ladda ned Contig v1.4 på http://www.sysinternals.com/ntw2k/freeware/contig.shtml.

SYSINTERNALS AT WWW.MICROSOFT.COM

Här är återigen den senaste delen av Sysinternals-referenser i Microsoft Knowledge Base-artiklar (KB) som släppts sedan det senaste nyhetsbrevet. Detta ger 27 det totala antalet KB-referenser till Sysinternals.

  • 0x8000FFFF meddelande om "oåterkalleligt fel" med SQL Server ODBC-drivrutin
    http://support.microsoft.com/support/kb/articles/Q243/3/49.ASP

  • ACC: Felmeddelande: ActiveX-komponenten kan inte skapa objekt
    http://support.microsoft.com/support/kb/articles/Q296/2/05.ASP

  • HOWTO: Fastställa vilken version av MSXML som används av Internet Explorer
    http://support.microsoft.com/support/kb/articles/Q296/6/47.ASP

  • HOWTO: Felsöka "ADODB. Anslut ion" Fel 800a0bb9 från Recordset DTC
    http://support.microsoft.com/support/kb/articles/Q197/3/23.ASP

  • INFO: Felsökningsguide för 80004005 och andra felmeddelanden
    http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP

  • XADM: Händelse-ID 3036- och 3026-meddelanden inträffar när du fyller i postlådearkivet
    http://support.microsoft.com/support/kb/articles/Q296/1/36.ASP

INTERN INFORMATION

INUTI WINDOWS 2000, DEN INTERAKTIVA DVD-SKIVAN

Dave Solomon och jag skrev "Inside Windows 2000, 3rd Edition", den officiella guiden till den interna och arkitekturen i Windows 2000, och vi är glada över att tillkännage den förestående lanseringen av "Inside Windows 2000" DVD-självstudie. Självstudien består faktiskt av 5 DVD-skivor med över 9 timmars innehåll som består av Dave och mig som lär dig det inre arbetet i Windows 2000 i en informell miljö.

Ämnen som beskrivs är minneshantering, processer och tråd, lagring, filsystem, nätverk med mera, och var och en är uppdelad i moduler på 10–20 minuter för bekväm visning. Presentationen innehåller dussintals diagram, demonstrationer, skärmbilder och sammanfattningslistor, och varje modul avslutas med granskningsfrågor för att testa och stärka din förståelse.

Slutlig prissättning och utgivningsdatum har ännu inte slutförts, men om du vill bli meddelad om versionen skicka e-post till mailto:video@... med ordet "intresse" i ämnet. Eller håll utkik efter http://www.sysinternals.com/video/ information.

MARKERA DATUMET: RUSSINOVICH &SOLOMON UNDERVISAR TILLSAMMANS I AUSTIN

Om du är intresserad av DVD-uppsättningen kommer du definitivt att vara intresserad av en möjlighet att se Dave och mig lära NT internals live. Kom till Austin, TX 11-13 december för att höra oss presentera vår 3-dagars Windows XP/2000/NT Internal Architecture-klass. Klassen baseras på "Inside Windows 2000, 3rd Edition" och omfattar miljöundersystem, systemanropssändning, systemtrådar, start och avstängning, registerinredning, processer och trådschemaläggning, minneshantering, säkerhet, I/O-system, lagring, NTFS och cachehanteraren. Genom att förstå det inre arbetet i Windows XP & 2000 kan du dra nytta av plattformen mer effektivt och mer effektivt felsöka problem.

När information är tillgänglig meddelar vi dig i nyhetsbrevet och på webbplatsen, så håll dig uppdaterad!

KOMMANDORADSDISKHANTERAMNT

Microsoft har äntligen släppt ett skriptbart kommandoradsverktyg för att hantera diskar i Windows 2000. Med DiskPart kan du skapa volymer eller partitioner, skapa och bryta speglingar, utöka volymer och undersöka information om diskar, volymer och partitioner. Vad som är trevligt är att DiskPart är en kostnadsfri nedladdning från http://www.microsoft.com/downloads/release.asp?ReleaseID=31167.

WINHEC 2001 BILDER ONLINE

Om du missade Microsofts årliga Windows Hardware Engineering Conference (WINHEC) kan du fortfarande visa bilderna från många av presentationerna. Besök http://www.microsoft.com/winhec/sessions/driver.htm för en lista över sessioner, beskrivningar och tillhörande länkar till Power Point-kortlekar. Presentationer av allmänt intresse handlar om tekniker för felsökning av drivrutiner, filterdrivrutiner och NDIS-miniport och mellanliggande drivrutiner.

NYA FILTERDRIVRUTINSGRÄNSSNITT FÖR FILSYSTEM I XP

Om du har en realtidsfilspegling, viruskontroll på åtkomst eller en produkt för hierarkisk lagringshantering som baseras på en filterdrivrutin för filsystem vill du se till att du är uppdaterad med de ändringar som Microsoft har infört i Windows XP som påverkar dig.

Den största förändringen gäller snabba I/O-rutiner, de särskilda funktioner som en filsystemdrivrutin registrerar så att Memory Manager, Cache Manager och I/O-systemet kan köra filsystem-I/O och interagera med filsystemdrivrutiner utan att behöva generera IP-adresser. Det kan komma som en överraskning för några av er att ta reda på att det finns 6 snabba I/O-rutiner för vilka filsystemfilterdrivrutiner alltid kringgås. Dessa är:

FastIoAcquireFileExclusive
FastIoReleaseFile
FastIoAcquireFileForCcFlush
FastIoReleaseFileForCcFlush
FastIoAcquireFileForModWrite
FastIoReleaseFileForModWrite

Minneshanteraren anropar FastIoAcquireFileExclusive och FastIoReleaseFile före och efter att ha skapat ett avsnitt som backas upp av en fil, och andra undersystem i kernelläge kan anropa dessa rutiner för att tillfälligt förhindra att avsnitt skapas. Cachehanteraren anropar FastIoAcquireFileForCcFlush och FastIoReleaseFileForCcFlush före och efter tömningen av alla eller delar av en fils ändrade cachelagrade data tillbaka till disken, och Minneshanteraren anropar FastIoAcquireFileForModWrite och FastIoReleaseFileForModWrite före och efter att du har skrivit smutsiga mappade filsidor tillbaka till en fil.

I stället för att anropa snabba I/O-funktioner direkt använder undersystem i kernelläge surrogatfilsystemskörningsrutiner (FsRtl). Körningsrutinerna för de flesta snabba I/O-funktioner anropar filterdrivrutiner genom att hämta en referens till deras filterenhetsobjekt via ett anrop till IoGetRelatedDeviceObject målfilobjektet och anropar sedan filtrets motsvarande snabba I/O-rutin, men körningsrutiner relaterade till de snabba I/O-anrop som bara anges i stället anropar IoGetBaseFileSystemDeviceObject, vilket returnerar den underliggande filsystemdrivrutinens enhetsobjekt. Anledningen till att körningen kringgår filter för dessa funktioner är enligt min mening lite lam: körningen litar helt enkelt inte på filterdrivrutiner. Om ett filter inte skickar dessa anrop till den underliggande filsystemdrivrutinen orsakar det skada på filsystemdata och nästan säkert en krasch. Men det finns många saker som en filterdrivrutin kan göra för att orsaka krascher.

I Windows XP introducerar FsRtl en ny funktion, , FsRtlRegisterFileSystemFilterCallbackssom filterdrivrutiner använder för att registrera återanrop för dessa olika åtgärder. Detta gör det möjligt för filsystemfilterdrivrutiner att undersöka dessa åtgärder och till och med redundansväxla dem, och körningen kan se till att den underliggande filsystemdrivrutinen alltid anropas när det är lämpligt. Var hittar du dokumentationen för funktionen? Windows XP Installable File System Kit, som är tillgängligt för 995 USD från Microsoft: http://www.microsoft.com/ddk/ifskit/XPdefault.asp.

KRASCHA WINDOWS MED ETT TANGENTDRAG

För några nyhetsbrev sedan berättade jag hur du kan lägga till en inställning i Windows 2000 Registry som gör att du kan initiera en Bluescreen-krasch av ett system som körs med en speciell nyckelsekvens, så att du kan analysera system som annars inte svarar på indata. Vad sägs om ett sätt att krascha Windows NT och Windows 2000 utan att behöva ange något i registret?

Öppna ett kommandotolksfönster, ändra den aktuella katalogen till roten på startenheten (enheten med \winnt på den) och skriv dir /s. Medan det körs skriver du F7+Enter några gånger och avbryter sedan listan genom att ange Ctrl-C. Du kommer antingen omedelbart att stöta på en blå skärm eller en spontan omstart. Coolt, va? Tyvärr, till skillnad från tricket som jag tidigare rapporterade, är den här inte utformad beteende, utan snarare en bugg som du kan hitta en rapport på http://www.WindowsITsecurity.com/articles/index.cfm?articleID=22037.

För dig som missade nyhetsbrevet som inkluderade inställningen keystroke-crash lägger du till följande registervärde i windows 2000- eller XP-registret enligt anvisningarna i hjälpfilen för Microsoft Debugging Tools:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrll DWORD 1

Starta om och du kan krascha systemet genom att skriva rullningslås två gånger medan du håller ned den vänstra kontrollnyckeln.

WINDOWS XP PREFETCHING

Microsoft har fokuserat Windows XP på att förbättra slutanvändarupplevelsen, och användarna anser att en stor del av upplevelsen är den hastighet med vilken en dator slås på och kan användas. Därför har en Microsoft-utvecklare lagt mycket arbete på att förbättra prestandan för startprocessen och programstarten. De har åtgärdat detta på flera sätt: den första är att serie- och nätverksdrivrutiner initieras parallellt, till skillnad från i Windows 2000 där de initieras seriellt. För det andra väntar Winlogon inte längre på att arbetsstationstjänsten (som i sig väntar på nätverkstjänster) ska bli tillgänglig innan inloggningsdialogrutan visas och en användare kan logga in. Slutligen har de införlivat en teknik som kallas "prefetching" i startprocessen och programstarten. Jag ska kort ta upp hur prefetching fungerar och peka dig på ett white paper Microsoft publicerat om startoptimeringar.

Windows (alla versioner utom i verkligt läge Win3.1) är ett efterfrågebaserat operativsystem, där fildata och kod "felas" i minnet från disken när ett program försöker komma åt det. Data och kod felas i "page"-detaljerade segment där en sidas storlek styrs av processorns maskinvara för minneshantering. En sida är 4 KB på x86. Prefetching är processen att föra in data och kodsidor i minnet från disken innan det krävs.

För att veta vad det ska förinställa övervakar XP Cache Manager de sidfel som program ådrar sig när de startas. Som standard spårar den de första 2 minuterna av startprocessen och de första 10 sekunderna av programstarten. När du har samlat in en spårning som är organiserad i fel som tagits på MFT-metadatafilen (NTFS Master File Table) (om programmet kommer åt filer eller kataloger på NTFS-volymer), de filer som refereras till och de kataloger som refereras till, meddelar det komponenten prefetch i Schemaläggaren genom att signalera ett namngivet händelseobjekt. Schemaläggaren utför ett anrop till NtQuerySystemInformation med en informationstyp som anger en fråga för en spårning och läser in den. När du har utfört efterbearbetningen på spårningsdata skriver Schemaläggaren ut den till en fil under \Windows\Prefetch. Filens namn är namnet på det program som spårningen gäller för följt av ett bindestreck och den hexadecimala representationen av en hash av filens sökväg. Filen har filnamnstillägget ".pf" så ett exempel skulle vara ANTECKNINGAR. EXE-AF43252301.PF.

Ett undantag från filnamnsregeln är filen som lagrar startspårningen, som alltid heter NTOSBOOT-B00DFAAD.PF (en sammanslagning av det hexadecimalkompatibla ordet "BAADF00D", som programmerare ofta använder för att representera onitialiserade data). Eventuella fel som uppstår i system- eller inaktiva processer anses vara en del av starten, vilket är meningsfullt eftersom det är i systemprocessen som enhetsdrivrutiner läser in och initierar.

När starten startar eller ett program kör anropar Processhanteraren Cachehanteraren för att ge den möjlighet att utföra förfunktioner. Cachehanteraren söker i prefetch-katalogen för att se om det finns en spårningsfil för det aktuella prefetch-scenariot. När en gör att Cache Manager anropar NTFS för att förkräva eventuella MFT-metadatafilreferenser, läses det i innehållet i var och en av de kataloger som refereras, och slutligen öppnas varje fil som refereras och använder Minneshanteraren för att läsa in data och kod som anges i spårningen som inte redan finns i minnet. Minneshanteraren initierar alla läsningar asynkront och väntar sedan på att de ska slutföras innan programmets start fortsätter.

Hur ger det här systemet en prestandaförmån? Svaret ligger i det faktum att under normal start eller programstart sker ordningen på fel så att vissa sidor tas in från en del av en fil, sedan en annan, sedan några från en annan fil, sedan några från en katalog och så vidare. Att hoppa runt motsvarar direkt att hoppa runt på disken, och Microsoft har lärt sig genom analys att disksökningstider är en dominerande faktor som saktar ned starttiderna för start och program. Sökningen elimineras praktiskt taget vid förinläsning av läsningar i data från en viss fil eller katalog samtidigt innan du går vidare till en annan.

Om du vill minimera sökningen ytterligare ordnar schemaläggaren var tredje dag en lista med filer och kataloger i den ordning som de refereras till under start eller programstart och lagrar listan i en fil med namnet \Windows\Prefech\Layout.ini. Sedan startas systemdefragmenteraren med ett kommandoradsalternativ som instruerar defragmenteraren att defragmentera baserat på innehållet i filen i stället för att utföra en fullständig defragmentering. Defragmenteraren hittar ett sammanhängande område på en volym som är tillräckligt stor för att lagra alla listade filer och kataloger och flyttar dem sedan till området så att de lagras en efter en.

Dessa är grunderna i XP prefetching-schemat, som Microsoft rapporterar påskyndar startprocessen avsevärt (du kan faktiskt se att XP startar mycket snabbare än Windows 2000). Du hittar mer information om prefetching och de andra snabbstartsförbättringarna i ett white paper på http://www.microsoft.com/hwdev/fastboot/. Dave Solomon och jag har också börjat arbeta med XP-revisionen av "Inside Windows 2000" (för publicering i mitten av våren), och du hittar en ännu mer detaljerad beskrivning där.

WINDOWS .NET-ANSLUTNINGAR

De av er som missade mig på TechEd kan höra mig tala på Windows .NET Anslut ions konferens i Scottsdale, Arizona den 3 oktober. Jag levererar presentationer på Windows NT/2000 kraschdumpanalys och kerneländringar i Windows XP. Andra talare på konferensen inkluderar andra Windows 2000 Magazine bidragande redaktörer Mark Minasi och Sean Daily. Låt mig veta om du deltar som du hört talas om konferensen från nyhetsbrevet.

Du kan se sammanfattningarna till mina samtal och hitta en länk till webbplatsen windows .NET Anslut ions påhttp://www.sysinternals.com/ntw2k/info/talk.shtml.

VAD KOMMER UPP

MINA ITANIUM-UPPLEVELSER

Microsoft har lånat mig ett Itanium-system så att jag kan port Sysinternals verktyg till Win64. Maskinen har några imponerande specifikationer, förresten: 2 733 MHz-processorer och 8 GB (!) RAM-minne. Nästa gång ska jag berätta om mina portningsupplevelser, inklusive de ändringar jag har varit tvungen att göra till olika verktyg så att de fungerar på Win64.


Tack för att du läser Sysinternals nyhetsbrev.

Publicerad måndag 20 augusti 2001 19:03 av ottoh

[Nyhetsbrev arkiv ^][< Volym 3, nummer 1][Volym 4, nummer 1 >]