Delen via


[Nieuwsbrievenarchief ^] [< Volume 1, getal 2] [Volume 1, getal 4 >]

The Systems Internals Newsletter Volume 1, Number 3

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


19 juni 1999 - In dit probleem:

  1. WAT IS ER NIEUW IN INTERNE SYSTEMEN

    • SDelete v1.1
    • Tekenreeksen v2.0
    • Geregistreerd
    • Filemon v4.13
    • DebugView/EE v3.1
    • "Binnen NT-netwerken"
    • Juni "NT Internals"
    • Updatestatus van NTFrob
    • Niet zo nieuw spul
  2. INTERN NIEUWS

    • Numega DriverStudio uitgebracht
    • Platform-SDK van juni beschikbaar
    • Win2K System File Protector (SFP)
    • Bestanden sluiten die zijn geopend vanuit het netwerk
  3. WAT KOMT ER AAN DE DAG?

    • Een 'AWE'-sommige Win2K-API

SPONSOR: WINTERNALS SOFTWARE

De Systems Internals Newsletter wordt gesponsord door Winternals Software, op het web op http://www.winternals.com. Winternals Software is de toonaangevende ontwikkelaar en provider van geavanceerde systeemhulpprogramma's voor Windows NT/2K. Winternals Software-producten omvatten FAT32 voor Windows NT 4.0, ERD Commander (opstartschijfmogelijkheid voor Windows NT) en NTRecover.

Winternals Software kondigt de release van Regmon en Filemon Enterprise Editions aan. Deze hulpprogramma's bieden alle functionaliteit van de freeware Filemon en Regmon, en voegen deze krachtige kenmerken toe:

  • register- en bestandssysteemactiviteit weergeven die plaatsvindt op externe Win9x/NT-systemen
  • logboekuitvoer naar een bestand in realtime
  • Uitvoerlijnen naar het klembord kopiëren
  • lijnen markeren die overeenkomen met een filter
  • uitvoer van verschillende computers tegelijk weergeven
  • uitvoer rechtstreeks naar een printer afdrukken
  • gemakkelijk uw laatste 5 filterselecties intrekken

Bestel- en prijsinformatie ophalen op http://www.winternals.com.


Hallo allemaal,

Welkom bij de derde editie van de systems internals nieuwsbrief. De nieuwsbrief heeft momenteel 4400 abonnees.

In de laatste nieuwsbrief heb ik aangegeven hoe Microsoft het Blue Screen of Death heeft afgedaan, omdat we weten dat het verdergaat met Windows 2000 (Win2K). Het nieuwe Win2K Blue Screen beschikt niet over de geladen stuurprogramma- en stackdumpinformatie die aanwezig is op de Blue Screen's van eerdere versies van Windows NT. Ik vroeg of u de informatie vindt die Microsoft heeft verwijderd en wou dat ze dingen alleen hadden achtergelaten. Het antwoord was vrijwel unaniem, waarbij elke respondent (behalve één) zich afvraagt waarom Microsoft voor de laagste gemene noemer gaat. Hier volgt een typische mening, verzonden door Tony Lavinio:

Met andere woorden, dit is het antwoord van de klant dat Microsoft zijn beslissing baseeert op:

'Ik begrijp het niet, dus het moet slecht zijn. zorg ervoor dat het weggaat.'

Waarom verwijderen ze niet alleen het hele scherm en plaatsen ze een bericht met de tekst 'Pull Plug, Reinsert Plug, Start Over'? Waarom nemen ze een van de weinige aanwijzingen weg die we hebben over waarom de dingen zuur zijn gegaan?

Tenminste voordat, als het een virusscanner of defragmentatie of buggy-chauffeur was, hebben we een punt van waaruit we moeten beginnen met zoeken.

Als dit hulpprogramma slechts 1 in 10.000 van ons helpt, met de brede basis van NT-implementatie, is het de moeite waard. Vooral omdat we .01% een goed deel van de andere 99,99% ondersteunen.

Wie was de enige dissenter? Het is niet te verwonderlijk dat het iemand van Microsoft is die blue screen crashrapporten meldt. Hier is hun kant op de verandering, die Tony's speculatie bevestigt over de reden hiervoor:

Ik werk in de NT Setup-groep in PSS bij MS (die het oplossen van problemen met blauw scherm afhandelt). Ik kan u verzekeren dat de meerderheid van de mensen die ik praat, niet weet wat ik moet doen met de informatie op een blauw scherm van 4.0. Ik weet zeker dat u een stop 0xA hebt gezien met NAIFILTR.SYS over de hele stapel die u zou weten om uw antivirusprogramma bij te werken, maar de meeste mensen maken die verbinding niet, en ze beseffen echt niet dat de stopcode en params nuttig zijn voor hen. Mensen die begrijpen hoe gegevens van blauw scherm moeten worden geïnterpreteerd, zijn waarschijnlijk ergerlijk, maar helaas zijn ze een minderheid.

Zoals ik in de laatste nieuwsbrief heb gezegd, vind ik dat Microsoft de NT 4.0 Blue Screen moet doorsturen, zodat de lijst met geladen stuurprogramma's en stackdumps behouden blijft. Ik denk ook dat ze het Blue Screen beter kunnen maken door meer informatie te verstrekken, niet minder. Waarom zou u bijvoorbeeld niet de naam weergeven van het momenteel uitgevoerde proces op het moment van de crash? Of geef meer BugCheck-aanroepen het adres van de fout door, niet alleen het adres dat is beschadigd? Een belangrijke reden dat PSS zoveel klanten tegenkwamen die geen idee hebben van het Blue Screen is dat Microsoft nooit documentatie heeft geschreven over het lezen ervan. Ten minste een deel van de schuld voor negeren van de gebruiker rust daarom op de eigen schouders van Microsoft.

Als u meer wilt weten over hoe Blue Screens zich voordoet en wat er op de (NT 4.) staat. Blue Screen, zie mijn artikel van december 1997, "Inside the Blue Screen", van Windows NT Magazine (u kunt de on-line versie van http://www.sysinternals.com/publ.htm).

Geef zoals gebruikelijk de nieuwsbrief door aan vrienden die u denkt dat het interessant kan zijn.

Hartelijk dank!

-Merken

WAT IS ER NIEUW IN INTERNE SYSTEMEN

SDELETE V1.1

In de laatste nieuwsbrief heb ik SDelete geïntroduceerd, een veilig hulpprogramma voor verwijderen dat u kunt gebruiken om onherstelbare bestandsgegevens te vernietigen, en om de vrije ruimte van eerder verwijderde gegevens van een schijf op te schonen. De eerste versie van SDelete kan de namen van bestanden die u hiermee verwijdert, niet veilig overschrijven. De naam van een bestand onthult vaak gevoelige informatie en het gebruik van SDelete om een bestand met een onthullende naam te verwijderen, kan die informatie zichtbaar maken. Om dit lusgat te verhelpen, heb ik SDelete bijgewerkt om niet alleen bestandsgegevens veilig te overschrijven, maar ook bestandsnamen. SDelete verwijdert een bestandsnaam veilig door de naam van het bestand 26 keer te wijzigen, waarbij elke letter in de bestandsnaam wordt vervangen door opeenvolgende letters van het alfabet, van 'A' naar 'Z'.

Download SDelete v1.1 met volledige broncode op http://www.sysinternals.com/sdelete.htm.

STRINGS V2.0

Uitvoerbare bestanden en DLL's bevatten vaak tekenreeksen die niet-gedocumenteerde registerwaarden en foutberichten kunnen onthullen die wijzen op niet-gedocumenteerde functionaliteit. Helaas worden de meeste Windows NT/2K-systeem-DLL's en EXE's geschreven om Unicode-tekenreeksen te gebruiken, terwijl traditionele hulpprogramma's voor tekenreeksen zoals Grep alleen ASCII-tekenreeksen extraheren. Ik heb de eerste versie van het hulpprogramma Tekenreeksen een paar jaar geleden geschreven om binaire bestanden te scannen op ASCII- of Unicode-tekenreeksen. Ik heb het vaak gebruikt in mijn onderzoek van NT internals om erachter te komen dat Microsoft niet documenteert.

Tekenreeksen hadden echter altijd een grote fout en dat was het onvermogen om een expressie met een jokerteken te maken als bestandsaanduiding, zodat u meerdere bestanden in één opname kon scannen. Ik wilde deze functie zodat ik, gezien de naam van een registerwaarde, gemakkelijk kan bepalen welke systeem-DLL's ernaar verwijzen.

Ten slotte heb ik Tekenreeksen bijgewerkt om volledige namen van jokertekens te maken, evenals om directory's te recurseren. Als u een expressie met jokertekens opgeeft, worden uitvoerregels automatisch voorafgegaan door de naam van het bestand waarin een tekenreeks wordt gevonden, zodat u iets als volgt kunt doen:

strings *.dll | grep SafeBoot

Als u de uitvoer van deze expressie bekijkt (een versie van Grep is beschikbaar in de Hulpprogramma's van de Windows NT Resource Kit Posix) wordt u geïnformeerd over welke systeem-DLL's de registersleutel SafeBoot controleren in Windows 2000. Tekenreeksen zijn ook zeer nuttig om te zien welke nieuwe Registerwaarden Win2K-systeem-DLL's, stuurprogramma's en uitvoerbare bestanden gebruiken. Ik heb bijvoorbeeld tekenreeksen gebruikt om de registerwaarden waarnaar wordt verwezen in de NT 4.0 SP4 TCP/IP-stack (tcpip.sys) te vergelijken met de waarden waarnaar wordt verwezen door de Windows 2000 TCPIP-stack. Hier volgen ongeveer de helft van de waarden die nieuw zijn voor de TCPIP-stack van Win2K (waarvan ik allemaal assum ben gelegen onder HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters):

ReservedPorts
DefaultGatewayMetric
InterfaceMetric
TempLeaseExpirationTime
TempIpAddress
TempMask
DhcpDefaultGateway
TcpWindowSize
TcpInitialRTT
TcpDelAckTicks
EnableTrafficControl
EnableTOSetting
MaxNormLookupMemory
MaxSendSegments
MaxFreeConnections
MaxFreeTWTcbs
FFPFastForwardingCacheSize

Ik wacht niet totdat Microsoft alle nieuwe configuratieparameters van de stack kan documenteren.

U kunt Strings v2.0 downloaden op http://www.sysinternals.com/misc.htm.

GEREGISTREERD

Heb je ooit willen weten wie is aangemeld bij een extern NT-systeem? Zo ja, dan wilt u LoggedOn downloaden. LoggedOn is een eenvoudig hulpprogramma waarmee u kunt zien welke gebruikers interactief zijn aangemeld op de lokale computer of een externe computer, evenals welke gebruikers zijn aangemeld via resourceverbindingen (bijvoorbeeld een bestands- of printershare). Hier volgt een voorbeeld van LoggedOn-uitvoer:

C:\>loggedon main

LoggedOn v1.0 - Logon Session Displayer
Copyright (C) 1999 Mark Russinovich
Systems Internals - http://www.sysinternals.com

Users logged on locally:
MAIN\Administrator

Users logged on via resource shares:
MAINDOM\MARK

Windows NT en Win2K bieden geen API die toepassingen kunnen gebruiken om te bepalen wie is aangemeld bij een computer, maar LoggedOn bepaalt dit door de registersleutels te bekijken die in de registerstructuur van HKEY\USERS een systeem worden geladen. De profielen van elke gebruiker die interactief is aangemeld, worden in deze sleutel geladen en profielen hebben namen die de SID (beveiligings-id) van het gekoppelde gebruikersaccount van het profiel identificeren. Als u bijvoorbeeld Regedit opent en eronder HKEY_USERS kijkt, ziet u iets als:

HKEY_USERS\.DEFAULT\S-1-5-21-734676951-386466661-1233803906-500

Hier wordt slechts één gebruiker interactief aangemeld. U kunt de lokale beheerder of domeinbeheerder laten weten omdat de RID (relatieve id) 500 is. Dit is de RID NT-reserves voor beheerdersaccounts.

Door API's te gebruiken waarmee het ene systeem naar het register van een ander systeem kan kijken, leest LoggedOn de HKEY_USERS sleutel van een externe computer en converteert de SID's die worden gevonden in accountnamen. Om te bepalen wie is aangemeld via resourceshare LoggedOn maakt gebruik van de NET-API, die wordt beschreven in de SDK. Het opdrachtregelprogramma Net maakt uitgebreid gebruik van de NET-API. Een neveneffect van LoggedOn die toegang krijgt tot het register van een extern systeem is dat het account dat u uitvoert, altijd wordt weergegeven als aangemeld bij een extern systeem via een resourceshare in de uitvoer van LoggedOn.

U kunt LoggedOn downloaden met volledige broncode op http://www.sysinternals.com/misc.htm.

FILEMON V4.13

Filemon v4.13 is zojuist uitgebracht, een update die wijzigingen in het Stuurprogramma van de Windows NT Filer weerspiegelt en een fout corrigeert die ik per ongeluk heb geïntroduceerd in het 4.12-stuurprogramma. Het filterstuurprogramma 4.13 heeft deze wijzigingen:

  • het resourcesynchronisatietype gebruikt om enkele van de interne gegevensstructuren te beveiligen
  • het verwerkt de nieuwe Win2K IRP, IRP_MJ_PNP_POWER

Het type resourcesynchronisatie is vrijwel niet gedocumenteerd in zowel de Windows NT 4.0- als Win2K Device Driver Development Kits (DDK's). In de ontwerphandleiding worden resources niet eens vermeld, terwijl hun functies worden beschreven in de verwijzing onder de sectie "Executive Support Routines". Resources zijn een nuttig mechanisme voor het beveiligen van gegevensstructuren die tegelijkertijd kunnen worden gelezen door verschillende threads, maar waarvoor exclusieve toegang door een thread is vereist tijdens een update. Ze zijn dus lezer-/schrijververgrendelingen die worden verkregen voor gedeelde toegang door lezers en exclusieve toegang door schrijvers. Bestandssysteemstuurprogramma's maken uitgebreid gebruik van resources, dus ik vond het geschikt om Filemon bij te werken om ze waar nodig te gebruiken.

Filemon v4.13 verwerkt ook de nieuwe IRP_MJ_PNP_POWER IRP, zodat het een stroom- en plug-and-play-filterstuurprogramma is wanneer deze wordt uitgevoerd onder Win2K. De enige vereiste van een stuurprogramma voor bestandssysteemfilters bij het verwerken van IRP's van dit type is om ze door te geven aan de bestandssysteemapparaten waaraan het filter is gekoppeld.

U kunt Filemon v4.13 downloaden met volledige broncode op http://www.sysinternals.com/filemon.htm.

DEBUGVIEW/EE V3.1

DebugView/EE is een veelzijdige foutopsporingsuitvoermonitor die u kunt gebruiken om lokale of externe foutopsporingsuitvoer vast te leggen die wordt gegenereerd door Win32-programma's of apparaatstuurprogramma's in de kernelmodus onder Win95, Win98, WinNT en Win2K. Het nut ervan is beperkt in omgevingen waarin een gebruiker een crash ondervindt met behulp van een apparaatstuurprogramma, maar alle foutopsporingsuitvoerdebugView legt vast voordat een crash verloren gaat. Met de nieuwste versie van DebugView/EE wordt dit probleem opgelost in Windows NT/2K. Als een gebruiker kernelmodusuitvoer vastlegt die wordt gegenereerd door een apparaatstuurprogramma en de gebruiker NT heeft geconfigureerd om een crashdump op te slaan, kan DebugView/EE de foutopsporingsuitvoer uit het dumpbestand extraheren wanneer het systeem opnieuw wordt opgestart. Bewerken van DebugView/EE gebruiken|Selectie van het menu Crashdump verwerken om een geheugendump te laten scannen op foutopsporingsuitvoer. Met deze functie kunnen gebruikers u terugsturen naar een tekstbestand met de foutopsporingsuitvoer die uw stuurprogramma tot het moment van de crash heeft gegenereerd.

Download DebugView/EE v3.1 op http://www.sysinternals.com/debugview.htm.

"BINNEN NT-NETWERKEN"

Mijn kolom van maart 1999 Windows NT Magazine "NT Internals" is nu online. Meer informatie over de netwerkarchitectuur van NT van boven naar beneden, inclusief welke API's het implementeert, hoe protocolstacks interface met API's en hoe hardwareleveranciers netwerkstuurprogramma's schrijven om te werken met protocolstuurprogramma's. Ontdek ook enkele nieuwe functies van Win2K's netwerken, waaronder gedeserialiseerde NDIS- en ATM-ondersteuning.

Lees "Inside NT Networking" and other past NT Internals columns on-line at http://www.sysinternals.com/publ.htm.

JUNI "NT INTERNALS"

De installatie van juni van mijn kolom Windows NT Magazine is "Inside EFS, Deel 1". In dit artikel wordt de architectuur van EfS (Encrypting File System) van Microsoft beschreven en wordt u stapsgewijs begeleid bij de stappen die EFS volgt wanneer een bestand wordt versleuteld. EFS biedt een transparante versleutelingsfaciliteit voor Win2K NTFS-stations en Microsoft heeft het specifiek ontwikkeld om de mogelijkheid van het NTFSDOS-hulpprogramma om NTFS-bestanden te lezen zonder rekening te houden met hun beveiliging. Deze kolom is over drie maanden online beschikbaar.

Twee nieuwsbrieven geleden heb ik besproken hoe de EFS-API's die nodig zijn voor het maken van back-ups en het herstellen van versleutelde bestanden, ongedocumenteerd zijn. Helaas zijn deze API's nog steeds niet gedocumenteerd in de huidige editie van MSDN. Ik ben echter geïnformeerd dat Microsoft de documentatie, die is gemarkeerd als 'Microsoft Vertrouwelijk', naar haar partners verzendt en back-ups maakt van softwareleveranciers. David Golds, File Systems Program Manager bij Microsoft, heeft ook een gesprek gepresenteerd over verbeteringen van het bestandssysteem voor Win2K op de recente Microsoft TechEd-conferentie in Dallas. In de presentatie wordt vermeld dat de back-up-API's niet-gedocumenteerd http://www.teched99.com/slides/1-337.pptzijn, maar dat u hem van de documentatie kunt opsporen. Helaas wordt zijn e-mailadres niet vermeld op de dia's.

Bezoek http://www.winntmag.com voor abonnementsgegevens van Windows NT Magazine.

UPDATESTATUS VAN NTFROB

NTFrob is een hulpprogramma dat ik een paar jaar geleden heb uitgebracht waarmee u de kwantumlengten van voorgrond- en achtergrondprocessen op NT 4.0 nauwkeurig kunt configureren. NTFrob wijzigt gegevensstructuren intern in de NT-kernel, dus het is zeer servicepackspecifiek. Sinds de release van NT 4.0 Service Pack 5 heb ik met query's gevraagd wanneer ik NTFrob v1.5 uit ga brengen, de SP 5-update. Het antwoord is dat de update binnenkort wordt uitgebracht. Ik wacht op Microsoft om MSDN-abonnees met SP5 te voorzien, inclusief foutopsporingsinformatie. Ik heb foutopsporingsinformatie nodig om NTFrob bij te werken voor nieuwe servicepacks.

U kunt NTFrob voor NT 4 SP0-4 downloaden op http://www.sysinternals.com/ntfrob.htm.

NIET ZO NIEUW SPUL

Een paar maanden geleden heb ik een Win9x/NT/2K seriële en parallelle poortmonitor uitgebracht bij Systems Internals. Met Portmon kunt u precies zien hoe toepassingen communiceren met seriële en parallelle poorten, inclusief welke gegevens ze verzenden en ontvangen. U kunt deze gebruiken om inbelsessies, laplink seriële verbindingen of printeractiviteit te bekijken. Portmon is een enorme hit en het kreeg onlangs 5 sterren uit Ziff-Davis' Software Library, de hoogst mogelijke waardering. Andere hulpprogramma's voor interne systemen die vijf sterren hebben verdiend, zijn Regmon, NTFSDOS en BlueSave.

Portmon downloaden op http://www.sysinternals.com/portmon.htm.

INTERN NIEUWS

DRIVERSTUDIO UITGEBRACHT

NuMega Labs van CompuWare heeft DriverStudio uitgebracht, een uitgebreide toolkit voor ontwikkelaars van Windows 9x/NT/2K-apparaatstuurprogramma's. Het bevat SoftICE 4.0, BoundsChecker for Drivers, VtoolsD, DriverAgent, DriverWorks, FieldAgent for Drivers en voegt in de toekomst TrueTime for Drivers en TrueCoverage for Drivers toe. Zoals ik in de laatste nieuwsbrief al zei, is dit een must-have developer toolkit. NuMega heeft ook een ontwikkelaarswebsite voor apparaatstuurprogramma's gelanceerd met de naam Driver Central - http://www.numega.com/drivercentral/default.asp.

PLATFORM-SDK VAN JUNI UITGEBRACHT

U kunt de release van juni van de Platform SDK van Microsoft nu downloaden op http://www.msdn.microsoft.com/developer/sdk/platform.asp.

WIN2K SYSTEM FILE PROTECTOR (SFP)

Een van de grootste grips van NT-systeembeheerders en gebruikers is de 'DLL Hell' van NT. DLL is het resultaat van veel toepassingen die DE DLL's van het sleutelsysteem bijwerken met versies die ze bundelen. Toepassingen doen dit meestal zodat ze kunnen garanderen dat ze goed werken, maar wanneer ze een DLL vervangen, breken ze vaak andere toepassingen door incompatibele versies te installeren of zelfs een DLL bij te werken naar een oudere versie.

Microsoft heeft problemen met DLL-versies in Win2K opgelost met de introductie van de System File Protector (SFP). Eigenlijk verandert de naam binnenkort in Windows File Protector (WFP), maar vanaf beta 3 (build 2031) is het nog steeds SFP. SFP wordt geïmplementeerd in een DLL met de naam sfc.dll dat het Winlogon-proces (winlogon.exe) wordt geladen wanneer het systeem wordt opgestart. SFP bevat een ingebouwde lijst met ongeveer 3000 standaard Win2K-systeem-DLL's, uitvoerbare bestanden (.exe), installatiebestanden (.inf), stuurprogramma's (.sys) en lettertypebestanden (.fon) die zijn geïnstalleerd in 30-40 verschillende mappen. Wanneer SFP wordt geïnitialiseerd, wordt een mapbewerking met een wijzigingsmelding uitgevoerd op elke map die bestanden bevat die worden beveiligd. Wanneer er manipulatie met een bestand wordt gedetecteerd, verschijnt er een dialoogvenster waarin de huidige gebruiker wordt geïnformeerd, wordt een zelfs naar het gebeurtenislogboek geschreven en wordt het gewijzigde bestand vervangen door een back-up die is opgeslagen in %systemroot%\system32\dllcache. Als het back-upbestand waarnaar SFP zoekt in dllcache ontbreekt of als er ook is geknoeid met, haalt SFP een nieuwe kopie op van de Win2K-installatiemedia.

Als u wilt zien welke bestanden SFP beveiligt, kunt u het hulpprogramma Tekenreeksen die elders in deze nieuwsbrief worden genoemd, gebruiken om de Unicode-tekenreeksnamen te dumpen die zijn ingesloten in %systemroot%\system32\sfc.dll.

De enige hulpprogramma's die systeembestanden kunnen bijwerken, zijn hotfix.exe, servicepacks (update.exe), upgrade-installaties en de Win2K Update-service. Hoe overslaan deze hulpprogramma's de SFP? Ze schakelen het tijdelijk uit door de geëxporteerde sfc.dll functie SfcTerminateWatcherThread aan te roepen en ze zorgen ervoor dat updates worden weergegeven in de submap dllcache. Houd er rekening mee dat Win2K vereist dat alle systeembestanden digitaal worden ondertekend door Microsoft, dus het is over het algemeen niet mogelijk om een systeembestand bij te werken met een willekeurige versie van uw eigen versie.

Win32-programma's kunnen wijzigingen in een map bekijken met behulp van de FindFirstChangeNotification- en FindNextChangeNotification Win32-API's. Deze API's informeren echter gewoon een toepassing dat er iets is gewijzigd; ze vertellen de toepassing niet precies wat er is gewijzigd. Daarom is een toepassing vereist om een volledige map te scannen om te bepalen welke bestanden of submappen mogelijk zijn gewijzigd. SFP maakt gebruik van de NT Native API om een wijzigingsmeldingsaanvraag uit te voeren waarbij NT precies aangeeft welke bestanden of submappen in bewaakte mappen veranderen. De functie die SFP gebruikt, heeft de naam NtNotifyChangeDirectoryFile en is, zoals 90% van de systeemeigen API van NT, niet-gedocumenteerd. Zoek in de nabije toekomst naar een applet bij Systems Internals die laat zien hoe u NtNotifyChangeDirectoryFile gebruikt.

Mijn kolom "NT Internals" van september, "Inside Win2K Reliability Enhancements, Part 2" beschrijft SFP in meer detail.

BESTANDEN SLUITEN DIE ZIJN GEOPEND VANUIT HET NETWERK

Een van de meest voorkomende vragen die ik krijg van bezoekers van Systems Internals is "Hoe sluit ik bestanden die gebruikers hebben geopend vanuit het netwerk?" Als een gebruiker een bestand of map op afstand heeft geopend, is het niet mogelijk om het bestand of de map lokaal te verwijderen, een andere naam te geven of bij te werken. Een vergelijkbare vraag is: 'Hoe kan ik zien welke bestanden gebruikers hebben geopend vanuit het netwerk?' Beide vragen worden beantwoord met het opdrachtregelprogramma Net dat wordt geleverd met Windows NT/2K. Als u wilt zien welke bestanden worden geopend, typt u gewoon 'net-bestand'. U krijgt een lijst met geopende bestandsnamen, bijbehorende bestandsnaam-id's en de namen van de gebruikers die bestanden hebben geopend. Als u een van de bestanden wilt sluiten die u ziet, typt net file <id> /closeu . Als u de bestanden wilt bekijken die lokaal zijn geopend, kunt u mijn hulpprogramma's NTHandle of HandleEx gebruiken.

De API's die ten grondslag liggen aan de functionaliteit voor het weergeven en sluiten van bestanden van de Net-opdracht, worden beschreven in de Platform-SDK en in de MSDN-bibliotheek. Gebruik de NetFileEnum-API om geopende bestanden en de NetFileClose-API te inventariseren om een geopend bestand te sluiten. Met de API's kunt u de geopende bestanden op externe servers opsommen, iets dat de Net-opdracht niet toestaat.

NTHandle is beschikbaar op http://www.sysinternals.com/nthandle.htm. HandleEx is beschikbaar op http://www.sysinternals.com/handleex.htm.

WAT KOMT ER AAN DE DAG?

EEN 'AWE'-SOME WIN2K-API

Win2K introduceert een nieuwe API met de naam AWE (Address Window Extensions) die geheugenintensieve toepassingen kunnen gebruiken om rechtstreeks toegang te krijgen tot en grote hoeveelheden fysiek RAM-geheugen te beheren, zelfs meer dan 3 GB, de bovengrens van ram-geheugen die een Windows NT-toepassing kan aanpakken in de virtuele adresruimte. Als een x86-systeem PSE (Paginagrootte-extensies) en meer dan 4 GB RAM heeft, kan een toepassing AWE gebruiken om te profiteren van al het geheugen van de computer. Deze API is daarom ideaal voor geheugen hongerige toepassingen zoals webservers en databaseservers. Volgende keer vertel ik u hoe ik de API's moet gebruiken, zowel van Win32-toepassingen als van apparaatstuurprogramma's.

Hoewel ik bezig ben met geheugen-hongerige toepassingen, is dit een tip voor iedereen die een toepassing schrijft die bestanden in de cache opslaat (zoals een webserver). Windows NT Cache Manager verdeelt het cachegeheugen in 256KB-slots met de naam 'views'. Als een bestand met een grootte van minder dan 256 kB in de cache wordt opgeslagen, moet cachebeheer het bestand nog steeds een volledige 256 KB-site toewijzen, wat betekent dat een deel van het virtuele geheugen van de cache wordt verspild. Daarom is het over het algemeen efficiënter om bestanden kleiner dan 256 kB in de cache op te slaan in het virtuele geheugen van uw eigen toepassing en om te vertrouwen op het bestandssysteem om bestanden groter dan 256 kB in de cache op te slaan. IIS 5.0 gebruikt deze truc.


Bedankt voor het lezen van de systems Internals Newsletter.

Gepubliceerd zaterdag 19 juni 1999 19:14 door ottoh

[Nieuwsbrievenarchief ^] [< Volume 1, getal 2] [Volume 1, getal 4 >]