5 augusti 1999 – I det här problemet:

  1. VAD ÄR NYTT PÅ SYSTEM INTERNALS

    • Portmon v3.0
    • Frob v1.5
    • ListDLLs v2.1
    • Nya BOOT.INI alternativ
    • PsList v1.0
    • Augusti "NT Internals"
    • Inte så nya saker
  2. INTERNT NYHETER

    • Korrigering Re: System file protection
    • Win2K RC1 DDK har släppts
    • The Win2K AWE API
    • WinDev '99 West
  3. VAD ÄR PÅ GÅNG

    • SP4:s odokumenterade DiskEdit-verktyg

SPONSOR: UNDERTIDSPROGRAMVARA

Nyhetsbrevet Systems Internals är sponsrat av Fallnals Software, på webben på http://www.winternals.com. Taraa Software är den ledande utvecklaren och leverantören av avancerade systemverktyg för Windows NT/2K. Bland software-produkterna finns FAT32 för Windows NT 4.0, ERD Commander (startdiskkapacitet för Windows NT) och NTRecover.

Under de senaste 2000-2010 meddelar Företaget att det senaste återställningsverktyget Remote Recover har släppts. Med Fjärr återställning kan du komma åt enheter på en dator som inte kan startas via TCP/IP var som helst i företaget. Spara tid och support dollar genom att fjärrkonfigurera drivrutins-, filsystem- och konfigurationsproblem som håller NT- eller Win9x-system off-line. Ladda ned en kostnadsfri skrivskyddad utvärderingsversion http://www.sysinternals.com/rrecover.htm på och köp läs-/skrivversionen på http://www.winternals.com.


Hej!

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

I det senaste nyhetsbrevet angav jag att jag skulle täcka Windows 2 000-tals (Win2K) AWE API. Jag har sagt att AWE står för "Address Windowing Extensions" (för nybörjare i 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 Eller Gunda pekade dock på en annan URL på Microsofts webbplats, , där AWE har angetts som API:et http://www.microsoft.com/windows/server/News/fromMS/intelpae.asp "Advanced Windowing Extensions". Det är uppenbart att "Adress" är mer meningsfullt än "Avancerat" i kontexten för API:et (som jag beskriver senare i det här nyhetsbrevet), så det är min gissning att vissa marknadsföringsskrivare hade ögonen på dem när de sammanfattade det tekniska rådata för nyhetssidan.

Jag har sett den här förvirringen inträffa tidigare i Microsofts tekniska täckning. Senast presenterades installationsprogrammet för Beta 3-versionen av Win2K Installable File Systems (IFS) Kit på välkomstskärmen som installation för "Internal File Systems Kit". "I" i IFS har alltid förbarmt sig med "Installerbar" och "Intern" är inte särskilt meningsfullt här (såvida de inte av misstag släppte den icke-offentliga versionen av paketet), så jag gissar att det är ett annat fall av något som blir uppsnabbat i översättningen (eller att konfigurationskodaren inte har en filsystemsteammedlem till hands och använder sin bästa gissning).

Vad är min poäng? Jag har egentligen inte någon, förutom att vi förr eller senare kommer att få förkortningen överskriden, där utvecklare och marknadsföringstekniker oavsiktligt börjar använda samma förkortningar med tre bokstäver för att beskriva olika tekniker. Någon i Microsofts IIS-grupp (Internet Information Server) ger ett nytt API namnet AIE ("Advanced ISAPI Extensions" – ISAPI står för Internet Server API) och någon i gruppen MTS (Microsoft Transaction Server) kommer att ta fram en annan AIE, "Atomic Interface Exchange". Och jag är säker på att en marknadsföringsperson eller teknisk författare en dag kommer att få ett tekniskt dokument från IIS-teamet som refererar till "AIE", utan att känna till skillnaden mellan en databas och ett filsystem, gissar att den står för "Advanced Internet Explorer".

Jag har också sett förkortningar av förvirring på arbetet på andra platser. I en Windows ARTIKEL i NT Magazine som diskuterade seriella och parallella portar användes termen "COM-port" i texten. När kopieringsredigeraren fick ett slutligt pass och artikeln publicerades hade frasen blivit "COM-port (Component Object Model)".

Som vanligt skickar du nyhetsbrevet vidare till vänner som du tror kan vara intressanta.

Tack!

-Mark

VAD ÄR NYTT PÅ SYSTEM INTERNALS

PORTMON V3.0

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

  • funktioner för avancerad filtrering och utdatamarkering
  • möjlighet att övervaka serie- och parallell portaktivitet på fjärrsystem
  • stöd för logg-till-fil och utskrift
  • Urklippsintegrering
  • en inställning som gör att du kan ange hur mycket läs-/skrivdata som ska loggas

Hämta 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 (turas om) som NT-trådschemat ger till trådar. På Windows 4.0 Workstation har system appleten i Kontrollpanelen fliken Prestanda med ett skjutreglage där du kan ange en kvantförstärkning för förgrundstrådar (skjutreglaget finns också på servern, men det gör ingenting). Kortare kvantum leder vanligtvis till program som är mer responsiva för användarindata, medan långa kvantvärden är bra för system som är dedikerade för att köra icke-interaktiva serverprogram.

Programmet Frob från Systems Internals ger dig samma finare grad av kontroll över kvantlängder både på arbetsstationen och på servern, så att du kan justera kvantum till den arbetsbelastning som du kör i ett system. Men eftersom Frob ändrar inställningar som är interna för NT-kerneln måste den uppdateras så att den fungerar med varje nytt Service Pack. Frob v1.5 är nu tillgänglig och ger kompatibilitet med Service Pack 5.

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

LISTDLLS V2.1

ListDLLs är ett kommandoradsverktyg som visar detaljerad versionsinformation om DE DLL:er som processerna har lästs in. ListDLLs extraherar versionsinformation från de filer på disken 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, vilket innebär att ListDLLs visar felaktig versionsinformation.

ListDLLs v2.1 identifierar när det finns en skillnad mellan på disken och inlästa versioner av en DLL flaggar skillnaden i dess utdata. Om det finns en avvikelse skriver ListDLL:er ut länktiderna för filen på disken och den inlästa filen. Länktider 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.

Hämta ListDLLs v2.1 på http://www.sysinternals.com/listdlls.htm.

NYA BOOT.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 kan x86-system endast 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 använder PAE (Sun Solaris 7 och SCO UnixWare 7 stöder redan PAE). Det finns faktiskt en särskild version av Win2K-kerneln, ntkrnlpa.exe, som har inbyggt stöd. NTLDR, Win2K-startprogrammet, ansvarar för att läsa in antingen standard kerneln, 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 är avsedda 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-belastning på PAE-versionen av kerneln även om datorn inte har mer än 4 GB minne. Den andra, /NOPAE, tvingar NTLDR att läsa in standard kerneln. Slutligen har /NOLOWMEM-växeln Win2K-kerneln endast 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 utför enhetsdrivrutinshantering av stora fysiska adresser.

Hitta den mest fullständiga listan över BOOT.INI tillgängliga växlarna på http://www.sysinternals.com/bootini.htm.

PSLIST V1.0

De flesta varianter UNIX levereras med ett kommandoradsverktyg som kallas "ps" som administratörer använder för att lista process-CPU- och minnesstatistik. NT har ett motsvarande GUI-baserat verktyg, Aktivitetshanteraren, men NT levereras utan kommandoradsversion. I Windows NT Resource Kit finns två kommandoradsverktyg som liknar "ps", pstat och pumon. PsList visar en kombination av informationen 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 bearbeta information i ett fjärrsystem.

PsList tar flera flaggor som gör att du kan visa processor-, minnes- eller trådstatistik och en växel som gör att du kan ange en annan NT-dator att fråga. 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 delen i en serie med tre delar beskriver Win2K-funktioner som hjälper administratörer att få igång ett system när det har blivit ostartat. Dessa inkluderar "felsäkert läge"-start 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 prenumererar går du via prenumerationslänken på för http://www.sysinternals.com/publ.htm att få prenumerationsrabatten System internt.

INTE SÅ NYA SAKER

Om du inte redan har haft en vän eller två med dig, kan du kolla in System Internals Bluescreen Screen Saver. Version 2.0 visar Win2K-versionen av BSOD (Blue Screen of Death) och Win2K-startsekvensen när du kör den på ett Win2K-system. Jag är stolt över att kunna säga att bluescreen-skärmsläckaren nyligen har tilldelats fem stjärnor, med högsta möjliga klassificering, från Ziff-Klassificerings programvarubibliotek.

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

INTERNT NYHETER

KORRIGERING RE: SYSTEMFILSKYDD

I det senaste nyhetsbrevet angav jag att Win2K:s System File Protection (SFP) låter program som Service Pack (SPs) och snabbkorrigeringar uppdatera systemfiler genom att anropa en SFP-funktionexport med namnet SfcTerminateWatcherThread. Även om SFP exporterar den funktionen, använder SPs och snabbkorrigeringar inte funktionen vid uppdatering av systemfiler. I stället kan de uppdatera systemfiler eftersom de ersätter befintliga systemfiler med dem som har signerats digitalt 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 att Win2K Beta 3 Microsoft ändrat 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" (Inuti Win2K Reliability Enhancements, del 2) som beskriver WFP och microsoft digital filsignering i detalj.

WIN2K RC1 DDK HAR SLÄPPTS

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 läsa dokumentationen online.

THE WIN2K AWE API

Jag nämnde redan API:et för AWE 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 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.

Även om varje program i ett stort minnessystem har högst 2 GB virtuellt minne tillgängligt (3 GB om växeln /3GB BOOT.INI anges), kan summan av fysiskt minne som tilldelas till alla program som körs vara lika stor som mängden fysiskt minne. På Win2K tilldelas dessutom filsystemets cacheminne högst 960 MB virtuellt minne, men mängden cachelagrade fildata kan vara mycket större fysiskt minne som tilldelats cacheminnet kan överskrida 960 MB.

API:et för AWE ger enskilda program möjlighet att direkt styra det fysiska minnet, och mer än gränsen på 2 GB eller 3 GB som är underförstådd av deras virtuella adressutrymmesstorlek. Grundidén bakom API:et för AWE är att ett program utser en del av det virtuella adressutrymmet som ett "fönster" i det fysiska minnet. Sedan allokeras ett 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 eventuellt icke-sidindeerat minne som redan allokerats av kerneln, enhetsdrivrutiner och andra program som använder API:et AWE. När programmet vill komma åt en del av det fysiska minne som det har allokerat mappar det minnet till det virtuella adressfönstret. Mängden fysiskt minne som programmet kan komma åt med en viss mappning begränsas därför av storleken på det fönster som det reserverat. Slutligen, när ett program är gjort med det fysiska minnet frigör det helt enkelt minnet och stänger (frigör) det virtuella adressfönstret som det skapade.

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

  • Ett program anropar VirtualAlloc med MEM_PHYSICAL och MEM_RESERVE flaggor för att skapa det virtuella adressfönstret
  • AllocateUserPhysicalPages 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 allokerat

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

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

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 mmAllocatePagesForMdl, vilket är kernellägesekvivalenten för AllocateUserPhysicalPages. 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 godkända fysiska adressen som den vill allokera och HighAddress är den högsta. SkipBytes är antalet byte som kerneln ska behålla fritt ovanför och under den adress där LowAddress den börjar allokera fysiskt minne. TotalBytes är antalet byte som drivrutinen vill allokera. Returvärdet för funktionen är en MDL som om den inte är noll beskriver det fysiska minne som kerneln har gett drivrutinen. För att få åtkomst till delar av minnet måste drivrutinen skapa underordnade MDL:er från det returnerade MDL-minnet 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 hjälp av MmGetSystemAddressForMdlSafe .

Drivrutiner använder MmFreePagesFromMdl , kernellägesekvivalenten till FreeUserPhysicalPages , för att frigöra det fysiska minne som har allokerats 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 med ett anrop till ExFreePool, eftersom inte MmAllocatePagesForMdlMmFreePagesFromMdl frigör MDL.

WINDEV '99 WEST

1999 års west coast-utgåva av Premier Conference för Windows utvecklare närmar sig snabbt. WinDev '99 West äger rum den 13–18 september påLäge Marriot i Kalifornien. Ett antal stora namn inom Windows utveckling talar, däribland Jeff Richter, Jeff Prosise och Don Box. Jag kommer att vara där med Brian Hanrahan och Brian Catlin i enhetsdrivrutinens spår. Mina presentationer innehåller en dag lång självstudie om NT internt, samt en om att skriva Windows NT/2K-filsystemdrivrutiner och en om avancerade problem med utveckling av enhetsdrivrutiner. Kom och säg hej!

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

VAD ÄR PÅ GÅNG

NT 4.0 SP4 DISKEDIT

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


Tack för att du läser nyhetsbrevet Systems Internals.

Publicerad torsdag 05 augusti 1999 19:13 av sn

[Nyhetsbrevsarkiv ^][ Volym 1, Nummer 3][Volym 1, Nummer 5 ]

[Nyhetsbrevsarkiv ^][ Volym 1, Nummer 3][Volym 1, Nummer 5 ]

System Internals Newsletter Volym 1, nummer 4

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