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

System Internals Newsletter Volym 1, Nummer 4

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


5 augusti 1999 – I det här problemet:

  1. NYHETER PÅ SYSTEM INTERNALS

    • Portmon v3.0
    • Frob v1.5
    • Lista DLL:er v2.1
    • Ny START. INI-alternativ
    • PsList v1.0
    • Augusti "NT Internals"
    • Inte så nya saker
  2. INTERNALS NEWS

    • Korrigering Re: System File Protection
    • Win2K RC1 DDK släppt
    • The Win2K AWE API
    • WinDev '99 West
  3. VAD KOMMER UPP

    • SP4:s odokumenterade DiskEdit-verktyg

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 (startdiskkapacitet för Windows NT) och NTRecover.

Winternals Software meddelar lanseringen av sitt senaste systemåteråterställningsverktyg, Remote Recover. Med Fjärråterställ kan du komma åt enheterna på en dator som inte kan startas via TCP/IP var som helst i företaget. Spara tid och stöd för dollar genom att fjärrkorrigering av drivrutin, filsystem och konfigurationsproblem som håller NT- eller Win9x-system utanför linjen. Ladda ned en kostnadsfri skrivskyddad utvärderingsversion på http://www.sysinternals.com/rrecover.htmoch köp läs-/skrivversionen på http://www.winternals.com.


Hej!

Välkommen till den fjärde utgåvan av Systems Internals nyhetsbrev. Nyhetsbrevet har för närvarande 7 000 prenumeranter.

I det senaste nyhetsbrevet angav jag att jag skulle täcka Windows 2000-s (Win2K) AWE API. Jag påpekade att AWE står för "Address Windowing Extensions" (för nybörjare till Windows står API för "Application Programming Interface"). Den här sidan på Microsofts webbplats för maskinvaruutvecklare beskriver den som sådan: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. Läsaren Laxmikant Gunda pekade mig dock på en annan URL på Microsofts webbplats, , http://www.microsoft.com/windows/server/News/fromMS/intelpae.aspdär AWE har utsetts till API:et "Advanced Windowing Extensions". Det är uppenbart att "Adress" är mer meningsfullt än "Avancerat" i samband med API:et (som jag beskriver senare i det här nyhetsbrevet), så det är min gissning att vissa marknadsföringsförfattare fick ögonen att spela ett trick på dem när de smälte rå tekniskt material för nyhetssidan.

Jag har sett denna förvirring hända tidigare i Microsofts tekniska täckning. Senast presenterade sig installationsprogrammet för Beta 3-versionen av Win2K Installable File Systems (IFS) Kit på sin välkomstskärm som installation för "Internal File Systems Kit". "Jag" i IFS har alltid stått för "Installable", och "Internal" är inte särskilt meningsfullt här (om de inte av misstag släppte den icke-offentliga versionen av satsen), så jag gissar att det är ett annat fall av något som blir skruvat i översättningen (eller installation kodaren inte har en fil system-team medlem till hands och använder sin bästa gissning).

Vad är min poäng? Jag har egentligen inte en, annat än att förr eller senare kommer vi att ha förkortningen overrun, där utvecklare och marknadsföring människor börjar oavsiktligt använda samma tre bokstäver förkortningar för att beskriva olika tekniker. Någon i Microsofts IIS-grupp (Internet Information Server) kommer att namnge ett nytt API med namnet AIE ("Advanced ISAPI Extensions" – ISAPI står för Internet Server API) och någon i gruppen MTS (Microsoft Transaction Server) kommer med en annan AIE, "Atomic Interface Exchange". Och jag är säker på att en dag en marknadsföringsperson eller teknisk författare kommer att få ett tekniskt papper från IIS-teamet som hänvisar till "AIE", och inte vet skillnaden mellan en databas och ett filsystem, kommer att gissa att det står för "Advanced Internet Explorer".

Jag har också sett förkortningen förvirring på andra platser. En nyligen publicerad artikel i Windows NT Magazine där serieportar och parallella portar diskuterades använde termen "COM-port" i sin text. När kopieringsredigeraren kom igenom med ett slutligt pass och artikeln publicerades hade frasen blivit "COM-port (komponentobjektmodell).

Som vanligt skickar du nyhetsbrevet vidare till vänner som du tror kan tycka att det är intressant.

Tack!

-Markera

NYHETER PÅ SYSTEM INTERNALS

PORTMON V3.0

Portmon har förbättrats på viktiga sätt med sin 3.0-version. Portmon är ett seriellt och parallellt portövervakningsprogram för Windows 95/98/NT/2K. Version 3.0 introducerar:

  • avancerad filtrering och utdatamarkeringsfunktion
  • möjligheten att övervaka seriell och parallell portaktivitet på fjärrsystem
  • stöd för logg-till-fil och utskrift
  • Integrering av Urklipp
  • en inställning som gör att du kan ange hur mycket läs-/skrivdata som ska loggas

Ladda ned Portmon v3.0 på http://www.sysinternals.com/portmon.htm.

FROB V1.5

Windows NT 4.0 Server ger administratörer ingen möjlighet att styra längden på kvantum (svängar) som NT-trådschemaläggaren ger till trådar. På Windows 4.0-arbetsstationen har System-appleten i Kontrollpanelen en prestandaflik med ett skjutreglage som gör att du kan ange en kvantförstärkning för förgrundstrådar (skjutreglaget finns också på Server, men det gör ingenting). Kortare kvantum resulterar vanligtvis i program som är mer dynamiska för användarindata, medan långa kvantum är bra för system som är dedikerade till att köra icke-interaktiva serverprogram.

Frob-programmet från System Internals ger dig samma finare kontrollgrad över kvantlängder på både arbetsstation och server, så att du kan justera kvantum till den arbetsbelastning du kör i ett system. Men eftersom Frob ändrar inställningar som är interna för NT-kerneln måste den uppdateras för att fungera med varje nytt Service Pack. Frob v1.5 är nu tillgängligt och ger kompatibilitet med Service Pack 5.

Du kan ladda ned Frob v1.5 på http://www.sysinternals.com/ntfrob.htm.

LISTDLLS V2.1

List-DLL:er är ett kommandoradsverktyg som visar detaljerad versionsinformation om de DLL:er som processerna har läst in. List-DLL:er extraherar versionsinformation från filer på disk som motsvarar filsökvägarna för inlästa DLL:er och hämtar sökvägarna med hjälp av odokumenterade gränssnitt. Ibland uppdateras en DLL-fil på disk när ett program redan har läst in den, i vilket fall list-DLL:er visar felaktig versionsinformation.

ListDLLs v2.1 identifierar när det finns en skillnad mellan de på disk och inlästa versionerna av en DLL, flaggar skillnaden i dess utdata. När det finns en avvikelse skriver ListDLL:er ut länktiderna för filen på disken och den inlästa filen. Länktiderna för körbara filer och DLL-filer finns i rubriken i filformatet Portable Executable (PE) som NT använder för att paketera dem.

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

NY START. INI-ALTERNATIV

Win2K Beta 3 introducerar tre nya BOOT. INI-växlar. Alla tre är relaterade till Intel Physical Address Extensions (PAE), en teknik som Intel introducerade med Pentium Pro för att tillåta x86-system att hantera upp till 64 GB fysiskt minne. Traditionellt sett kan x86-system bara hantera 4 GB fysiskt minne, men med PAE och 450NX-kretsuppsättningen bryts den här barriären. Win2K är det första Microsoft-operativsystemet som kommer att dra nytta av PAE (Sun Solaris 7 och SCO UnixWare 7 stöder redan PAE). Det finns faktiskt en särskild version av Win2K-kerneln med namnet ntkrnlpa.exe, som har inbyggt stöd. NTLDR, Win2K-startinläsaren, ansvarar för att läsa in antingen standardkärnan, ntoskrnl.exe eller den PAE-aktiverade, baserat på om systemet kan hantera mer än 4 GB minne och har den mängden närvarande.

Alla tre nya BOOT. INI-växlar syftar till att felsöka enhetsdrivrutiner som är utformade för att fungera med stora minnessystem (system med mer än 4 GB). Den första, /PAE, har NTLDR läsa in PAE-versionen av kerneln även om datorn inte har mer än 4 GB minne. Den andra, /NOPAE, tvingar NTLDR att läsa in standardkärnan. Slutligen har /NOLOWMEM-växeln Win2K-kerneln endast använda fysiskt minne över 4 GB. Detta tvingar alla fysiska adresser som används av Win2K att kräva mer än 32 bitar för att representera dem, och därmed övningar enhetsdrivrutinshantering av stora fysiska adresser.

Hitta den mest kompletta listan över BOOT. INI-växlar som är tillgängliga på http://www.sysinternals.com/bootini.htm.

PSLIST V1.0

De flesta varianter av UNIX levereras med ett kommandoradsverktyg som kallas "ps" som administratörer använder för att visa en lista över processor- och minnesstatistik. NT har ett motsvarande GUI-baserat verktyg, Task Manager, men NT har ingen kommandoradsversion. Windows NT Resource Kit innehåller två kommandoradsverktyg som ps, pstat och pumon. PsList visar en kombination av den information som är tillgänglig med pstat och pumon, men har en funktion som varken Resource Kit-verktyget har: du kan använda PsList för att fråga processinformation i ett fjärrsystem.

PsList har flera flaggor som gör att du kan visa processor-, minnes- eller trådstatistik för processer och en växel som gör att du kan ange en annan NT-dator att köra frågor mot. PsList använder NT:s inbyggda prestandaräknare för att hämta den information som visas och fungerar på NT 3.51, 4.0 och Win2K.

Ladda ned PsList på http://www.sysinternals.com/pslist.htm.

AUGUSTI "NT INTERNALS"

Min "NT Internals"-kolumn i augustinumret av Windows NT Magazine är "Inside Win2K Reliability Enhancements, Part 1". Den här första i en serie i tre delar beskriver Win2K-funktioner som syftar till att hjälpa administratörer att få igång ett system efter att det har blivit ostartbart. Dessa inkluderar start i felsäkert läge och återställningskonsolen.

Från och med början av augusti är onlineversioner av Windows NT Magazine-artiklar endast tillgängliga för prenumeranter och artiklar publiceras online med varje nytt problem. Om du inte har prenumererat går du igenom prenumerationslänken på http://www.sysinternals.com/publ.htm för att få rabatten för System Internals-prenumerationen.

INTE SÅ NYA SAKER

Om du inte har skrämt en vän eller två med det redan, kolla in System Internals Bluescreen Skärmsläckare. Version 2.0 visar Win2K-versionen av BSOD (Blue Screen of Death) och Win2K-startsekvensen när du kör den i ett Win2K-system. Jag är stolt över att kunna säga att Bluescreen Screen Saver nyligen har tilldelats fem stjärnor, högsta möjliga betyg, från Ziff-Davis Software Library.

Ladda ned Bluescreen Screen Saver v2.0 på http://www.sysinternals.com/bluescrn.htm.

INTERNALS NEWS

KORRIGERING RE: SYSTEMFILSKYDD

I det senaste nyhetsbrevet uppgav jag att Win2K:s System File Protection (SFP) låter program som Service Packs (SPs) och snabbkorrigeringar uppdatera systemfiler genom att anropa en funktions-SFP-export med namnet SfcTerminateWatcherThread. Även om SFP exporterar den funktionen använder inte SP:er och snabbkorrigeringar funktionen vid uppdatering av systemfiler. I stället kan de uppdatera systemfiler eftersom de ersätter befintliga systemfiler med de som är digitalt signerade av Microsoft. SFP identifierar uppdateringarna, men gör att de kan fastna eftersom SFP verifierar att de nya filerna är digitalt signerade. En annan korrigering angående min SFP täckning är att efter Win2K Beta 3 Microsoft ändrade namnet på SFP till Windows File Protection (WFP).

Se till att kolla in septembernumret av Windows NT Magazine, där du hittar min NT Internals-kolumn "Inside Win2K Reliability Enhancements, Part 2", som beskriver WFP och Microsoft digital filsignering i detalj.

WIN2K RC1 DDK SLÄPPT

Du kan ladda ned Win2K RC1-versionen av Microsofts Device Driver Development Kit (DDK) nu på http://www.microsoft.com/ddk/ddk2kRC1.htm. Du kan ladda ned paketet kostnadsfritt eller bläddra i dokumentationen online.

THE WIN2K AWE API

Jag nämnde redan AWE-API:et i introduktionen till det här nyhetsbrevet och refererade till en webbsida på Microsoft där du kan lära dig mer: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. På system med mer än 4 GB fysiskt minne kan Win2K:s PAE-kompatibla kernel – ntkrnlpa.exe – dra nytta av alla datorns fysiska minne utan ändringar i programmen. Win2K Advanced Server använder upp till 8 GB fysiskt minne och Win2K Datacenter Server använder upp till 64 GB fysiskt minne.

Varje program i ett stort minnessystem har högst 2 GB virtuellt minne till sitt förfogande (3 GB om /3GB BOOT. INI-växeln har angetts), summan av det fysiska minne som tilldelats till alla körbara program kan vara lika med mängden fysiskt minne. På Win2K tilldelas dessutom filsystemets cache maximalt 960 MB virtuellt minne, men mängden cachelagrade fildata kan vara mycket större fysiskt minne som tilldelats cacheminnet kan överstiga 960 MB.

AWE-API:et ger enskilda program möjlighet att direkt styra fysiskt minne och mer än gränsen på 2 GB eller 3 GB som anges av deras storlek på det virtuella adressutrymmet. Den grundläggande idén bakom AWE-API:et är att ett program anger en del av sitt virtuella adressutrymme som ett "fönster" i fysiskt minne. Sedan allokerar den en del fysiskt minne. Den övre gränsen för mängden fysiskt minne som ett program kan allokera är i stort sett mängden fysiskt minne i systemet minus allt icke-sidiga minne som redan allokerats av kerneln, enhetsdrivrutiner och andra program med hjälp av AWE-API:et. När programmet vill komma åt en del av det fysiska minne som det har allokerat mappar det minnet till dess virtuella adressfönster. Därför begränsas mängden fysiskt minne som programmet kan komma åt med en viss mappning av storleken på det fönster som det reserverade. När ett program är klart med det fysiska minnet frigör det helt enkelt minnet och stänger (frigör) det virtuella adressfönstret som det skapade.

DE API:er som motsvarar dessa åtgärder exporteras av kernel32.dll och är följande:

  • Ett program anropar VirtualAlloc med flaggorna MEM_PHYSICAL och MEM_RESERVE för att skapa det virtuella adressfönstret
  • AllokeraUserPhysicalPages allokerar fysiskt minne för ett program
  • Ett program använder MapUserPhysicalPages för att mappa delar av det fysiska minnet till fönstret
  • FreeUserPhysicalPages frigör det fysiska minne som programmet allokerade

Möjligheten för program att direkt manipulera flera GB minne är en välsignelse för minnesintensiva program som databasservrar, e-postservrar, webbservrar, ekonomisk analys och vetenskapliga program.

Även om möjligheten att använda mer än 4 GB fysiskt minne endast tillåts för vissa versioner av Win2K finns AWE-API:et på alla versioner. Det innebär att I ett Win2K Professional-system med 4 GB minne, till exempel, ger AWE API fortfarande minnesintensiva program möjligheten att hantera mer än 2 eller 3 GB data i fysiskt minne.

AWE-API:et har motsvarande kernellägesgränssnitt som kernel32.dll baserar API:erna i användarläge på. En drivrutin kan allokera fysiskt minne med hjälp av MmAllocatePagesForMdl, som är motsvarigheten till AllocateUserPhysicalPages i kernelläge. Den här funktionen har sin prototyp i filen Win2K DDK ntddk.h, men är odokumenterad. Prototypen är:

NTKERNELAPI
PMDL
MmAllocatePagesForMdl (
    IN PHYSICAL_ADDRESS LowAddress,
    IN PHYSICAL_ADDRESS HighAddress,
    IN PHYSICAL_ADDRESS SkipBytes,
    IN ULONG TotalBytes
    );

LowAddress är den lägsta acceptabla fysiska adressen som den vill allokera och HighAddress är den högsta. SkipBytes är det antal byte som kerneln ska hålla fritt ovanför LowAddress och under den adress där den börjar allokera fysiskt minne. TotalBytes är antalet byte som drivrutinen vill allokera. Returvärdet för funktionen är en MDL som om icke-noll beskriver det fysiska minne som kerneln har gett drivrutinen. För att få åtkomst till delar av minnet måste drivrutinen skapa under-MDLs från den returnerade MDL som beskriver lämpliga delar av det fysiska minnet. När en drivrutin vill komma åt fysiskt minne som beskrivs av en under-MDL måste den mappa under-MDL med .MmGetSystemAddressForMdlSafe

Drivrutiner använder MmFreePagesFromMdl, kernellägesmotsvarigheten FreeUserPhysicalPagesför , för att frigöra det fysiska minne som det har allokerat med MmAllocatePagesForMdl. Den här funktionen är också prototyp i ntddk.h:

NTKERNELAPI
VOID
MmFreePagesFromMdl (
    IN PMDL MemoryDescriptorList
    );

Observera att en drivrutin ansvarar för att frigöra MDL som returneras av MmAllocatePagesForMdl med ett anrop till ExFreePool, eftersom MmFreePagesFromMdl MDL inte frigörs.

WINDEV '99 WEST

1999 års västkustutgåva av den främsta konferensen för Windows-utvecklare närmar sig snabbt. WinDev '99 West äger rum 13-18 september på Santa Clara Marriot i Kalifornien. Ett antal stora namn inom Windows-utveckling talar, inklusive Jeff Richter, Jeff Prosise och Don Box. Jag kommer att vara där med Jamie Hanrahan och Brian Catlin i enhetsdrivrutinens spår. Mina presentationer innehåller en dagslång självstudie om interna NT-filer, samt en om hur du skriver windows NT/2K-filsystemdrivrutiner och en om problem med utveckling av avancerade enhetsdrivrutiner. Kom och säg hej!

Besök WinDev West-webbsidan på http://www.butrain.bu.edu/windev/.

VAD KOMMER UPP

NT 4.0 SP4 DISKEDIT

Windows NT 4.0 Service Pack 4 levereras med ett snyggt verktyg på cd:n som många kanske inte har märkt: DiskEdit. Och det är inte konstigt: verktyget inte installeras på hårddisken, och det kommer utan dokumentation. Det är nästan säkert att det är ett verktyg som används internt av Microsofts filsystemutvecklare som av misstag levererades på CD:n. DiskEdit är en skatt för de personer som har missat ett Norton Utilities Disk Edit-type-verktyg för Windows NT, eller bara vill utforska NTFS- och FAT-datastrukturer på disk. Nästa gång ska jag ge dig några instruktioner om hur du använder DiskEdit.


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

Publicerad torsdag 05 augusti 1999 19:13 av ottoh

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