[Nieuwsbrievenarchief ^] [< Volume 3, Getal 1] [Volume 4, Getal 1 >]
The Systems Internals Newsletter Volume 3, Number 2
http://www.sysinternals.com
Copyright (C) 2001 Mark Russinovich
20 augustus 2001 - In dit probleem:
HOOFDARTIKEL
WAT IS ER NIEUW IN SYSINTERNALS
- Process Explorer v5.1
- Handle v2.0
- PsInfo v1.1
- PsExec v1.24
- PsLogList v2.07
- Windows XP-bronindeling
- DebugView v4.13
- PageDefrag v2.1, Contig v1.41
- Sysinternals bij Microsoft
INFORMATIE OVER INTERNE GEGEVENS
- In Windows 2000, de interactieve dvd
- Markeer de datum: Russinovich en Salomon leren samen in Austin
- Opdrachtregelschijfbeheer
- WINHEC 2001-dia's online
- Nieuwe stuurprogrammainterfaces voor bestandssysteemfilters in XP
- Windows crashen met een toetsstreek
- Windows XP Prefetching
- Windows .NET-verbindingen
WAT KOMT ER AAN DE DAG?
- Mijn Itanium-ervaringen
SPONSOR: WINTERNALS SOFTWARE
De Sysinternals 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/XP. Winternals Software producten omvatten FAT32 voor Windows NT 4.0, NTFSDOS Professional Edition (een read/write NTFS-stuurprogramma voor DOS) en Remote Recover.
Winternals is trots om Defrag Commander versie 1.31 aan te kondigen, de snelste, meest grondige enterprise-defragmenter beschikbaar. U kunt nu defragmentatieschema's in uw hele Windows-onderneming beheren vanuit een eenvoudige MMC-module, zonder dat u zelfs clientsoftware hoeft te installeren op uw NT- of Windows 2000-systemen. Er is een licentie van 10 systemen beschikbaar voor online aankoop voor slechts $ 169 en er zijn agressieve hoeveelheidskortingen beschikbaar. Bezoek http://www.winternals.com/39 voor meer informatie of om 30 dagen gratis te downloaden en te gebruiken.
Hallo allemaal,
Welkom bij de Sysinternals nieuwsbrief. De nieuwsbrief heeft momenteel 33.000 abonnees.
Ik gebruik computers in verschillende capaciteiten: als softwareontwikkelaar; als gebruiker; en als systeembeheerder (voor mijn eigen netwerk van ontwikkel- en testsystemen). Omdat ik het breedste publiek wil bereiken voor Sysinternals freeware tools en Winternals commerciële producten, de meeste hulpprogramma's richten zich op minimaal Windows NT 4 tot en met Windows XP, en velen ook op Windows 95 tot en met Windows Me. De meeste hulpprogramma's die ik schrijf, zijn systeemniveau, wat betekent dat ze vaak speciale code bevatten voor een of meer van de verschillende Windows-varianten. Helaas zijn er aanzienlijke verschillen tussen de gebruikersinterface en kernel tussen de Windows NT-regel en de Windows 9x-regel, en zelfs verschillen tussen versies van dezelfde regel.
Ik heb vroeger tests uitgevoerd door verschillende foutopsporingssystemen te hebben, allemaal geconfigureerd voor multibootsing van de Windows-smaken die ik heb opgesomd, en opstarten in een versie, testen en vervolgens opnieuw opstarten in de volgende. Naast traag zijn, zou het testen soms scheef zijn door het verstoren van druppels van tussenliggende test builds van hulpprogramma's die ik niet goed had opgeschoond. Hoewel ik nog steeds een verzameling multibooting-systemen heb voor foutopsporingsproblemen, heeft een innovatief product met de naam VMWare (www.vmware.com) mijn testcycli sneller en eenvoudiger gemaakt.
VMWare is een virtuele-machineomgeving die u gebruikt om virtuele computers (gasten) te maken die worden uitgevoerd op Windows NT-, Windows 2000- of Linux-installaties (hosts). Een gast kan de meeste varianten van Windows, DOS en Linux uitvoeren. Het is vervelend om te zien dat een versie van een besturingssysteem wordt uitgevoerd boven op een andere, vooral wanneer u een virtuele machine volledig scherm maakt, er is vrijwel geen manier om te detecteren dat u niet op het scherm van een Linux-computer zit in plaats van het virtuele beeldscherm van een Linux-computer dat wordt uitgevoerd op Windows 2000, bijvoorbeeld. Een virtuele machine is een door software opgelegde doos die het besturingssysteem en de toepassingen inkapselt die op de virtuele machine worden uitgevoerd, zodat wanneer ze proberen te communiceren met de hardware die ze denken aanwezig zijn, de software van de virtuele machine de toegang onderschept. Met de software voor virtuele machines worden virtuele apparaten gemaakt die als zorgvuldig beheerde surrogaten fungeren voor echte hardware of virtuele hardware. Wanneer een toepassing die wordt uitgevoerd op een virtuele machine die in een venster wordt weergegeven, bijvoorbeeld naar het weergavegeheugen van de virtuele machine wordt geschreven, wordt de inhoud van het venster dat de weergave van de virtuele machine vertegenwoordigt, bijgewerkt in plaats van dat de toegang tot het echte videogeheugen wordt aangeraakt. Als de virtuele machine in de modus Volledig scherm werd uitgevoerd, zou de software van de virtuele machine dergelijke toegang tot het videogeheugen rechtstreeks laten manipuleren.
De virtuele-machinemogelijkheid maakt VMWare alleen nuttig, omdat u een willekeurig aantal 'testsystemen' kunt hebben die rond uw harde schijf staan. Wat VMWare nog krachtiger maakt, is het feit dat u een virtuele computer kunt 'onderbreken', de status ervan op schijf kunt opslaan en deze later kunt hervatten, binnen enkele seconden de status herstellen die het had toen u was onderbroken. Maar er is nog meer. Ik maak uitgebreid gebruik van een functie met de naam 'niet-permanente schijven', waarbij VMWare een virtuele computer start met de virtuele schijven die de inhoud bevatten die u hebt gedefinieerd (bijvoorbeeld met slechts een eenvoudige installatie van het besturingssysteem) en vervolgens wijzigingen bijhouden, zodat u ze ongedaan kunt maken en terug kunt gaan naar de beginstatus. Als ik testversies van een hulpprogramma installeer en er vervolgens voor moet zorgen dat ik weer terug ben in een schone status die geen van de wijzigingen van het hulpprogramma weergeeft, maak ik de wijzigingen ongedaan. Ik vind VMWare ook nuttig in mijn gebruikers- en systeembeheerdersrollen. Wanneer ik een toepassing download die ik niet zeker weet dat ik wil behouden, in plaats van mogelijk inbreuk te maken op mijn ontwikkelsysteem of deze te vullen met restresten wanneer ik een toepassing verwijder, probeer ik het gewoon eerst op een virtuele machine met een niet-permanente schijf.
Er zijn enkele relatief kleine nadelen van de huidige versie die mij hebben verhinderd om mijn echte foutopsporingscomputers zoveel te gebruiken als ik doe. Het eerste is dat u, omdat de virtuele machines DirectX niet ondersteunen, het SoftICE-foutopsporingsprogramma van Numega niet kunt uitvoeren, behalve met de virtuele machine met een schermresolutie van 640x480. De tweede is dat de virtualisatie van seriële poorten van VMWare beperkt is op een manier die voorkomt dat kernelfoutopsporing wordt uitgevoerd met Windbg of Kd tussen de host en een gast of tussen gasten. Het laatste probleem moet echter worden opgelost in de volgende primaire VMWare-release.
Wat met name interessant is over VMWare is dat computerwetenschappers totdat VMWare anders heeft aangetoond dat het onmogelijk was om de x86-architectuur in software goed genoeg te virtualiseren om een ongewijzigd besturingssysteem uit te voeren zonder te verbieden prestatievermindering. De uitdagingen zijn aanzienlijk, met name op het gebied van virtualisatie van hardwareapparaten en het succes van VMWare wordt gezien als een doorbraak- zozeer dat VMWare onlangs een "best of conference" paper heeft gepubliceerd over hoe ze apparaatvirtualisatie hebben geïmplementeerd op de jaarlijkse USENIX Technical Conference. U kunt het document lezen op http://vmware1.m0.net/m/s.asp?HB4162878203X1075673X73339X.
Over de USENIX Technical Conference gesproken, heb ik ook samen een paper gepubliceerd die daar is gepubliceerd, High Performance Memory Based Webservers: Kernel en User-Space Performance (http://www.sysinternals.com/files/webserver.pdf). Het artikel beschrijft een deel van het innovatieve onderzoek waaraan ik heb deelgenomen tijdens het werken aan IBM Research. De bijdragen van het werk zijn op het gebied van kernelmoduswebserverversnelling en naast het bijdragen aan de architectuur, was ik verantwoordelijk voor veel van de implementatie op Windows NT en Windows 2000. Het project was zo succesvol dat we consistent specWeb-wereldrecords voor webserviceprestaties hielden, het werd uitgebracht als een nog steeds evoluerend IBM-product genaamd IBM Netfinity Web Server Accelerator, en zowel Microsoft als de Linux-community hebben verschillende van de belangrijkste ideeën opgenomen in hun eigen producten (zoals IIS voor Windows 2000 en Tux op Linux).
Geef de nieuwsbrief door aan vrienden die u denkt geïnteresseerd te zijn in de inhoud.
Hartelijk dank!
-Merken
WAT IS ER NIEUW IN SYSINTERNALS
PROCESS EXPLORER V5.1
Process Explorer is de nieuwe naam voor HandleEx, een hulpprogramma voor meerdere doeleinden waarin gedetailleerde informatie over processen, de DLL's die ze hebben geladen en de ingangen voor de geopende besturingssysteemresources worden weergegeven. Samen met de nieuwe naam introduceren de nieuwste versies van Process Explorer een aantal nieuwe functies, waaronder efficiënte automatische vernieuwing, een kolom CPU-gebruik, de mogelijkheid om procesprioriteiten te wijzigen en rapportage van processessie-id's als het systeem een terminalserver is. Bovendien wordt er veel meer informatie over processen weergegeven. U kunt bijvoorbeeld de lijst met services bekijken die worden uitgevoerd binnen een proces (indien van toepassing), de omgevingsvariabelen van een proces onderzoeken en opdrachtregels voor processen weergeven. Met behulp van een nieuwe sorteeroptie met de naam 'processtructuur', kunt u grafisch de bovenliggende en onderliggende relaties van processen bekijken, iets waarmee u het doel van een proces kunt identificeren. Process Explorer wordt uitgevoerd op alle Windows 9x-versies en Windows NT 4 tot en met Windows XP.
Iets dat mogelijk niet direct duidelijk is in de interface van Process Explorer, is de mogelijkheid om te laten zien welke processen een bepaald bestand of een bepaalde map hebben geopend. Schakel de weergave over naar de greepmodus en voer de naam van het betreffende bestand of de map in het zoekdialoogvenster in. De zoekfunctie wordt meestal gebruikt om het proces op te sporen dat verhindert dat u een bestand of map verwijdert of de naam ervan wijzigt, maar u kunt deze ook gebruiken om processen weer te geven waarvoor specifieke DLL's zijn geladen.
Process Explorer v5.1 downloaden op http://www.sysinternals.com/ntw2k/freeware/procexp.shtml.
HANDLE V2.0
Handle is de opdrachtregelversie van de handle-viewing-functionaliteit van Process Explorer waarmee u de ingangen kunt zien naar besturingssysteembronnen, zoals bestanden, die geopend zijn. In sommige gevallen is het gebruik van Handle een snellere manier om een proces te identificeren dat een bestand of map heeft geopend dan met behulp van de zoekfaciliteit van Process Explorer, omdat u gewoon een deel van de naam van het bestand of de map op de opdrachtregel Handle invoert. Naast efficiënter zoeken naar handlenamen, werkt Handle 2.0 nu in Windows 95/98/Me.
Download Handle v2.0 op http://www.sysinternals.com/ntw2k/freeware/handle.shtml.
PSINFO V1.1
De nieuwste toevoeging aan de PsTools suite met beheerhulpprogramma's is PsInfo. PsInfo is een opdrachtregelprogramma dat de hardware- en besturingssysteemkenmerken van een computer rapporteert. Er wordt bijvoorbeeld aangegeven welk besturingssysteem wordt uitgevoerd, inclusief het servicepacknummer, de installatie- en vervaldatum (indien van toepassing) en configuratie (bijvoorbeeld domeincontroller, lidserver). Het bevat ook het type, de snelheid en het aantal CPU's op de computer en de hoeveelheid fysiek geheugen die is geïnstalleerd. Deze informatie maakt PsInfo handig voor systeemidentificatie of inventaris. Net als alle hulpprogramma's in de PsTools-suite wordt PsInfo uitgevoerd op de lokale of externe Windows NT-, 2000- of XP-computer.
Download PsInfo v1.1 op http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml.
PSEXEC V1.24
Met PsExec kunt u processen op externe systemen starten zonder dat u handmatig software hoeft te installeren op het externe systeem, zolang het systeem zich in uw netwerkwijk bevindt. De kracht van PsExec ligt in de ondersteuning voor omgeleide consoleprogramma-I/O, waar het de toetsenbordinvoer en tekstuitvoer van een extern consoleprogramma afhandelt alsof deze wordt uitgevoerd op uw lokale systeem.
De nieuwste versie van PsExec ondersteunt meerdere actieve processen op hetzelfde externe systeem, zodat u op afstand verschillende opdrachtprompts op een ander systeem kunt openen, bijvoorbeeld. Er is ook een nieuwe optie 'geforceerd kopiëren' waarmee u kunt opgeven dat PsExec een bestand naar een externe computer moet kopiëren voor uitvoering, waarbij u een bestaande versie vervangt.
PsExec v1.24 downloaden op http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.
PSLOGLIST V2.07
PsLogList, een ander hulpprogramma PsTools, dumpt gebeurtenislogboeken van het lokale of externe systeem. In tegenstelling tot eloglist, geeft het hulpprogramma Windows 2000 Resource Kit met hetzelfde doel de volledige gebeurtenistekenreeks van een record weer en wanneer externe logboeken worden gedumpt, wordt gebruikgemaakt van de tekenreeksbronbestanden van het gebeurtenislogboek van het externe systeem in plaats van van van de lokale.
Versie 2.07 van PsLogList bevat een opdrachtregelswitch, zodat u deze kunt doorsturen naar uitgebreide informatie over gebeurtenislogboekrecords (de aanvullende informatie die kan worden gekoppeld aan een record) en een nieuwe switch, zodat u de records alleen van de opgegeven meest recente dagen kunt bekijken.
PsLogList v2.07 downloaden op http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml.
WINDOWS XP SOURCE LAYOUT
Hebt u zich ooit afgevraagd hoe Microsoft de broncode organiseert waaruit de Windows NT/2000/XP-kernel bestaat? Ik wist ook dat de informatie openbaar beschikbaar is. Wanneer Microsoft een nieuwe build van Windows 2000/XP publiceert, worden verschillende versies uitgebracht:
- een uniprocessor "gratis" versie
- een uiniprocessor -gratis versie die meer dan 4 GB aan fysiek geheugen ondersteunt
- een gratis multiprocessorversie
- een gratis multiprocessorversie die meer dan 4 GB aan fysiek geheugen ondersteunt
- een 'ingeschakelde' multiprocessorversie
- een 'ingeschakelde' multiprocessorversie die meer dan 4 GB aan fysiek geheugen ondersteunt
In totaal 6 versies. Wat de 'free' van de 'checked' onderscheidt, is niet het feit dat de 'gratis' versie gratis is (niet), maar dat de 'gecontroleerde' versie, die is opgenomen in de MSDN CD-set, code en gegevens bevat die helpen bij foutopsporing van het besturingssysteem en apparaatstuurprogramma. De gratis versie wordt gewoon gecompileerd zonder de extra code die is opgenomen in voorwaardelijke compilatie-instructies.
Voorbeelden van de extra gecontroleerde code zijn afdrukinstructies voor foutopsporing die rapporteren wat het besturingssysteem doet, strengere consistentiecontrole van de parameters die zijn doorgegeven aan kernelmodusfuncties van apparaatstuurprogramma's en 'assertie'-instructies. Een assert-instructie valideert de aanname van een ontwikkelaar over voorwaarden die van toepassing zijn op een codegebied. Als een aanwijzer bijvoorbeeld verwijst naar een gegevensstructuur met een identificatiehandtekening, kan een ontwikkelaar een verklaring voor dat effect invoegen. Wat gebeurt er wanneer de veronderstelling van de verklaring wordt geschonden? Dat hangt af van de assertie, maar in het geval van degenen die zijn opgenomen in de ingeschakelde builds wordt een foutopsporingsuitvoerbericht afgedrukt en wordt vervolgens een onderbrekingspunt voor het foutopsporingsprogramma geactiveerd zodat het kernelfoutopsporingsprogramma wordt geactiveerd (of, als er geen foutopsporingsprogramma actief is, treedt er een crash op die hopelijk een dumpbestand genereert dat later kan worden onderzocht).
Om het identificeren van de problemen die worden gedetecteerd door asserties eenvoudig te maken, worden de asserties die in de gecontroleerde build worden gebruikt, afgedrukt het bestand, de functie en het regelnummer van de locatie van de assertie. Ik kan de indeling van de bronstructuur weergeven door deze tekenreeksen te extraheren met mijn hulpprogramma 'tekenreeksen' voor tekenreeksextractie en ze te ordenen in een Java-structuurweergave.
Bekijk de windows XP-bronindeling en meer informatie over asserties op http://www.sysinternals.com/ntw2k/info/xpsrctree.shtml (houd er rekening mee dat in het IE een waarschuwing wordt weergegeven over het langzaam laden van de pagina. Sluit deze en u ziet de structuur).
DEBUGVIEW V4.13
DebugView is een hulpprogramma voor ontwikkelaars waarmee u foutopsporingsuitvoer van toepassingen of stuurprogramma's op het lokale systeem of een externe kunt vastleggen, zelfs vanaf meerdere systemen tegelijk. Deze nieuwste release voegt compatibiliteit toe met Windows XP RC 1. DebugView werkt op Windows 9x, Windows Me, Windows NT, Windows 2000 en Windows XP.
Download DebugView v4.13 op http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.
PAGEDEFRAG V2.1, CONTIG V1.41
Rangschikking boven aan de populairste Sysinternals downloads zijn PageDefrag en Contig. PageDefrag defragmenteert kerngegevensbestanden van het systeem tijdens het opstarten en Contig is een opdrachtregelprogramma voor het defragmenteren van bestanden. De nieuwste versies van deze hulpprogramma's hebben een verbeterde defragmentatie-engine voor Windows 2000 en elk heeft een aantal van zijn eigen verbeteringen.
Naast het defragmenteren van register- en wisselbestanden, de nieuwste versie van PageDefrag defragmenteert ook gebeurtenislogboekbestanden. En vergelijkbaar met Chkdsk in Windows 2000 heeft PageDefrag nu een aftelling van 3 seconden tijdens het opstartproces, waarbij u op een willekeurige toets kunt drukken om de fragmentatie over te slaan.
Wat Contig uniek maakt, is het feit dat u deze kunt gebruiken om afzonderlijke bestanden, volledige mappen of een hele schijf te defragmenteren. Contig is gericht op het optimaliseren van bepaalde bestanden die essentieel zijn voor toepassingsprestaties, omdat, in tegenstelling tot commerciële defragmentaties, vrije ruimte niet samenvoegt om toekomstige fragmentatie op een schijf te voorkomen. Naast de verbeterde defragmentatie-engine heeft de nieuwe Contig betere uitvoeropmaak, zowel in niet-uitgebreide als uitgebreide modi.
PageDefrag v2.1 downloaden op http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml.
Contig v1.4 downloaden op http://www.sysinternals.com/ntw2k/freeware/contig.shtml.
SYSINTERNALS AT WWW.MICROSOFT.COM
Hier is nogmaals de nieuwste installatie van Sysinternals-verwijzingen in Microsoft Knowledge Base-artikelen (KB) die zijn uitgebracht sinds de laatste nieuwsbrief. Dit brengt tot 27 het totale aantal KB-verwijzingen naar Sysinternals.
0x8000FFFF bericht 'Onherstelbare fout' met SQL Server ODBC-stuurprogramma
http://support.microsoft.com/support/kb/articles/Q243/3/49.ASPACC: Foutbericht: ActiveX-onderdeel kan geen object maken
http://support.microsoft.com/support/kb/articles/Q296/2/05.ASPPROCEDURE: De versie van MSXML bepalen die wordt gebruikt door Internet Explorer
http://support.microsoft.com/support/kb/articles/Q296/6/47.ASPPROCEDURE: Problemen met ADODB oplossen. Verbindingsfout 800a0bb9 van Recordset DTC
http://support.microsoft.com/support/kb/articles/Q197/3/23.ASPINFO: Gids voor probleemoplossing voor 80004005 en andere foutberichten
http://support.microsoft.com/support/kb/articles/Q183/0/60.ASPXADM: Gebeurtenis-id 3036- en 3026-berichten vinden plaats wanneer u postvakarchief vult
http://support.microsoft.com/support/kb/articles/Q296/1/36.ASP
INFORMATIE OVER INTERNE GEGEVENS
BINNEN WINDOWS 2000, DE INTERACTIEVE DVD
Dave Salomon en ik schreven "Inside Windows 2000, 3rd Edition", de officiële gids voor de interne functies en architectuur van Windows 2000, en we zijn verheugd om de aanstaande release van de "Inside Windows 2000" DVD-zelfstudie aan te kondigen. De zelfstudie bestaat eigenlijk uit 5 dvd's met meer dan 9 uur inhoud die bestaat uit Dave en ik leer je de innerlijke werking van Windows 2000 in een informele omgeving.
Onderwerpen die worden behandeld, zijn geheugenbeheer, processen en threads, opslag, bestandssystemen, netwerken en meer, en elk is onderverdeeld in modules van 10-20 minuten voor een handige weergave. De presentatie bevat tientallen diagrammen, demo's, schermopnamen en overzichtslijsten, en elke module eindigt met beoordelingsvragen om uw begrip te testen en te versterken.
De definitieve prijzen en de releasedatum zijn nog niet voltooid, maar als u op de hoogte wilt worden gesteld van de release, stuurt u een e-mail naar mailto:video@...
het woord 'interesse' in het onderwerp. Of kijk naar http://www.sysinternals.com/video/ details.
MARK THE DATE: RUSSINOVICH & SALOMON TEACH TOGETHER IN AUSTIN
Als je geïnteresseerd bent in de dvd-set, ben je zeker geïnteresseerd in een kans om Dave en ik NT internals live te leren. Kom naar Austin, TX december 11-13 om ons te horen presenteren onze 3-daagse Windows XP/2000/NT Interne architectuur klasse. De klasse is gebaseerd op 'Inside Windows 2000, 3rd Edition' en behandelt omgevingssubsystemen, systeemoproepverzending, systeemthreads, opstarten en afsluiten, interne registers, processen en threadplanning, geheugenbeheer, beveiliging, het I/O-systeem, opslag, NTFS en de cachebeheer. Door inzicht te krijgen in de interne werking van Windows XP & 2000, kunt u profiteren van het platform effectiever en effectiever fouten opsporen en problemen oplossen.
Wanneer er details beschikbaar zijn, laten we u weten in de nieuwsbrief en op de website, dus blijf op de hoogte!
COMMAND-LINE DISK MANAGEMNT
Buigen naar druk van systeembeheerders, Microsoft heeft eindelijk een scriptbaar opdrachtregelprogramma uitgebracht voor het beheren van schijven in Windows 2000. Met DiskPart kunt u volumes of partities maken, spiegels maken en breken, volumes uitbreiden en details van de schijven, volumes en partities onderzoeken. Wat leuk is, is dat DiskPart een gratis download is van http://www.microsoft.com/downloads/release.asp?ReleaseID=31167.
WINHEC 2001 DIA'S ONLINE
Als u de jaarlijkse Windows Hardware Engineering Conference (WINHEC) van Microsoft hebt gemist, kunt u de dia's nog steeds bekijken vanuit veel presentaties. Ga naar http://www.microsoft.com/winhec/sessions/driver.htm een lijst met sessies, beschrijvingen en bijbehorende koppelingen naar Power Point-decks. Presentaties van algemeen belang zijn technieken voor foutopsporing van stuurprogramma's, filterstuurprogramma's en NDIS miniport en tussenliggende stuurprogramma's.
NIEUWE STUURPROGRAMMAINTERFACES VOOR BESTANDSSYSTEEMFILTERS IN XP
Als u een realtime bestandsspiegeling, viruscontrole op toegang of hiërarchisch opslagbeheerproduct hebt dat is gebaseerd op een stuurprogramma voor bestandssysteemfilters, moet u ervoor zorgen dat uw kennis van de wijzigingen die Microsoft heeft geïntroduceerd in Windows XP die van invloed zijn op u.
De grootste wijziging heeft betrekking op snelle I/O-routines, de speciale functies die een bestandssysteemstuurprogramma registreert, zodat het Memory Manager-, Cachebeheer- en I/O-systeem I/O-bestandssysteem I/O kan uitvoeren en kan communiceren met bestandssysteemstuurprogramma's zonder IRPs te hoeven genereren. Het kan een verrassing voor sommigen van u zijn om erachter te komen dat er 6 snelle I/O-routines zijn waarvoor stuurprogramma's voor bestandssysteemfilters altijd worden overgeslagen. Dit zijn:
FastIoAcquireFileExclusive
FastIoReleaseFile
FastIoAcquireFileForCcFlush
FastIoReleaseFileForCcFlush
FastIoAcquireFileForModWrite
FastIoReleaseFileForModWrite
De Memory Manager-aanroepen en FastIoReleaseFile
voor en na het maken van een sectie die wordt ondersteund door een bestand, en andere kernelmodussubsystemen kunnen deze routines aanroepen FastIoAcquireFileExclusive
om tijdelijk te voorkomen dat secties worden gemaakt. Cachebeheer roept FastIoAcquireFileForCcFlush
aan en FastIoReleaseFileForCcFlush
voor en na het leegmaken van alle of een deel van de gewijzigde gegevens in de cache op schijf, en de Geheugenbeheeraanroepen FastIoAcquireFileForModWrite
en FastIoReleaseFileForModWrite
voor en na het schrijven van vuile toegewezen-bestandspagina's terug naar een bestand.
In plaats van snelle I/O-functies rechtstreeks aan te roepen, maken subsystemen in de kernelmodus gebruik van surrogaat-routines voor bestandssysteemruntime (FsRtl). De runtimeroutines voor de meeste snelle I/O-functies roepen filterstuurprogramma's aan door een verwijzing naar het filterapparaatobject op te halen via een aanroep naar IoGetRelatedDeviceObject
het doelbestandsobject en vervolgens de bijbehorende snelle I/O-routine van het filter aan te roepen, maar runtimeroutines met betrekking tot de snelle I/O-aanroepen die net worden vermeld in plaats daarvan een aanroep IoGetBaseFileSystemDeviceObject
, die het apparaatobject van het onderliggende bestandssysteemstuurprogramma retourneert. De reden dat de runtime filters voor deze functies omzeilt, is naar mijn mening een beetje lamellen: de runtime vertrouwt alleen geen filterstuurprogramma's. Als een filter deze aanroepen niet doorgeeft aan het onderliggende bestandssysteemstuurprogramma, veroorzaakt dit beschadiging van bestandssysteemgegevens en bijna zeker een crash. Maar er zijn veel dingen die een filterstuurprogramma kan doen om crashes te veroorzaken.
In Windows XP introduceert de FsRtl een nieuwe functie, FsRtlRegisterFileSystemFilterCallbacks
die filterstuurprogramma's gebruiken om callbacks te registreren voor deze verschillende bewerkingen. Hierdoor kunnen stuurprogramma's voor bestandssysteemfilters deze bewerkingen onderzoeken en zelfs mislukken, en kan de runtime ervoor zorgen dat het onderliggende stuurprogramma van het bestandssysteem altijd wordt aangeroepen wanneer dat nodig is. Waar vindt u de documentatie voor de functie? De Windows XP Installable File System Kit, die beschikbaar is voor $ 995 van Microsoft: http://www.microsoft.com/ddk/ifskit/XPdefault.asp.
WINDOWS CRASHEN MET EEN TOETSSTREEK
Een paar nieuwsbrieven geleden heb ik u verteld hoe u een instelling kunt toevoegen aan het Windows 2000-register waarmee u een Bluescreen-crash van een actief systeem kunt initiëren met een speciale sleutelreeks, zodat u systemen kunt analyseren die anders niet reageren op invoer. Hoe zit het met een manier om Windows NT en Windows 2000 te crashen zonder iets in het register in te stellen?
Open een opdrachtpromptvenster, wijzig de huidige map in de hoofdmap van uw opstartstation (het station met \winnt
erop) en typ dir /s
. Terwijl dit wordt uitgevoerd, typT u F7+Enter een paar keer en ontbreekt u de vermelding door Ctrl-C in te voeren. Je zult onmiddellijk een blauw scherm of een spontane herstart tegenkomen. Cool, hè? Helaas, in tegenstelling tot de truc die ik eerder heb gemeld, is deze niet ontworpen gedrag, maar eerder een bug waarvoor u een rapport kunt vinden op http://www.WindowsITsecurity.com/articles/index.cfm?articleID=22037.
Voeg de volgende registerwaarde toe aan uw Windows 2000- of XP-register volgens de instructies in het Help-bestand microsoft foutopsporingsprogramma's voor degenen van u die de nieuwsbrief hebben gemist die de toetsaanslag-crashinstelling bevatte:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrll DWORD 1
Start opnieuw op en u kunt het systeem vastlopen door twee keer scroll-lock te typen terwijl u de linkerbesturingstoets ingedrukt houdt.
WINDOWS XP PREFETCHING
Microsoft heeft Windows XP gericht op het verbeteren van de eindgebruikerservaring en gebruikers beschouwen een groot deel van de ervaring met de snelheid waarmee een computer wordt ingeschakeld en bruikbaar is. Daarom hebben een Microsoft-ontwikkelaars veel moeite besteed aan het verbeteren van de prestaties van het opstartproces en het opstarten van toepassingen. Ze hebben dit op verschillende manieren aangepakt: de eerste is dat seriële en netwerkapparaatstuurprogramma's parallel worden geïnitialiseerd, in tegenstelling tot in Windows 2000 waar ze serieel initialiseren. Ten tweede wacht Winlogon niet langer tot de werkstationservice (die zelf wacht op netwerkservices) beschikbaar is voordat het aanmeldingsdialoogvenster wordt weergegeven en een gebruiker zich kan aanmelden. Ten slotte hebben ze een techniek met de naam 'prefetching' opgenomen in het opstartproces en het opstarten van de toepassing. Ik ga kort bespreken hoe prefetching werkt en u verwijst naar een technisch document dat Microsoft heeft gepubliceerd over opstartoptimalisaties.
Windows (alle versies, met uitzondering van win3.1 in de echte modus) is een besturingssysteem met pagina's op aanvraag, waarbij bestandsgegevens en code 'defect' zijn in het geheugen van de schijf als een toepassing toegang probeert te krijgen. Gegevens en code zijn defect in 'pagina'-gedetailleerde segmenten waarin de grootte van een pagina wordt bepaald door de hardware voor geheugenbeheer van de CPU. Een pagina is 4 kB op de x86. Prefetching is het proces van het overbrengen van gegevens en codepagina's in het geheugen van de schijf voordat deze wordt gevraagd.
Om te weten wat er vooraf moet worden gebruikt, controleert XP Cache Manager de paginafouten die toepassingen krijgen wanneer ze worden opgestart. Standaard wordt de eerste 2 minuten van het opstartproces en de eerste 10 seconden aan het opstarten van de toepassing aangetroffen. Nadat u een tracering hebt verzameld die is ingedeeld in fouten die zijn opgetreden in het MFT-metagegevensbestand (NTFS Master File Table) (als de toepassing bestanden of mappen op NTFS-volumes opent), worden de bestanden waarnaar wordt verwezen en de mappen waarnaar wordt verwezen, het prefetch-onderdeel van de Task Scheduler op de hoogte gesteld door een benoemd gebeurtenisobject aan te geven. De Task Scheduler voert een aanroep uit naar NtQuerySystemInformation met een informatietype waarmee een query voor een tracering wordt opgegeven en waarin deze wordt gelezen. Na het uitvoeren van postverwerking op de traceringsgegevens schrijft de Task Scheduler deze naar een bestand onder \Windows\Prefetch
. De naam van het bestand is de naam van de toepassing waarop de tracering van toepassing is, gevolgd door een streepje en de hexadecimale weergave van een hash van het pad van het bestand. Het bestand heeft de extensie .pf, dus een voorbeeld is KLADBLOK. EXE-AF43252301.PF.
Een uitzondering op de bestandsnaamregel is het bestand dat de tracering van het opstartprogramma opslaat, die altijd een naam NTOSBOOT-B00DFAAD.PF
heeft (een samenvoeging van het hexadecimale woord 'BAADF00D', die programmeurs vaak gebruiken om niet-geïnitialiseerde gegevens weer te geven). Eventuele fouten in de systeem- of niet-actieve processen worden beschouwd als onderdeel van het opstarten, wat logisch is omdat deze zich in het systeemproces bevindt dat apparaatstuurprogramma's laden en initialiseren.
Wanneer het opstarten wordt gestart of een toepassing wordt uitgevoerd, roept Process Manager de Cachebeheer aan om deze een mogelijkheid te geven om vooraf te fetching uit te voeren. Cachebeheer zoekt in de prefetch-map om te zien of er een traceringsbestand bestaat voor het betreffende prefetch-scenario. Wanneer de cachebeheer NTFS aanroept om eventuele MFT-metagegevensbestandverwijzingen vooraf te maken, wordt deze gelezen in de inhoud van elk van de mappen waarnaar wordt verwezen. Ten slotte wordt elk bestand geopend waarnaar wordt verwezen en wordt het geheugenbeheer gebruikt om gegevens en code te lezen die zijn opgegeven in de trace die nog niet in het geheugen staat. De Memory Manager initieert alle leesbewerkingen asynchroon en wacht vervolgens totdat ze zijn voltooid voordat het opstarten van een toepassing kan worden voortgezet.
Hoe biedt dit schema een prestatievoordeel? Het antwoord ligt in het feit dat tijdens het normaal opstarten of opstarten van de toepassing de volgorde van fouten optreedt, zodat sommige pagina's worden opgehaald uit het ene deel van een bestand, vervolgens een paar uit een ander bestand, vervolgens sommige uit een map enzovoort. Dit springen komt rechtstreeks overeen met het springen op de schijf en Microsoft heeft geleerd door analyse dat schijfzoektijden een dominante factor zijn die opstart- en opstarttijden van toepassingen vertraagt. Het zoeken wordt vrijwel geëlimineerd wanneer het vooraf elimineren van gegevens uit een bepaald bestand of een bepaalde map allemaal tegelijk wordt gelezen voordat u verdergaat met een ander bestand.
Om de drie dagen tot een minimum te beperken, organiseert de Task Scheduler een lijst met bestanden en mappen in de volgorde waarnaar wordt verwezen tijdens het opstarten of starten van een toepassing en slaat de lijst op in een bestand met de naam \Windows\Prefech\Layout.ini
. Vervolgens wordt de systeemdefragmentatie gestart met een opdrachtregeloptie die aangeeft dat de defragmenter moet defragmenteren op basis van de inhoud van het bestand in plaats van een volledige defragmentatie uit te voeren. De defragmentatie vindt een aaneengesloten gebied op een volume groot genoeg om alle vermelde bestanden en mappen te bewaren en ze vervolgens naar het gebied te verplaatsen, zodat ze één na de andere worden opgeslagen.
Dit zijn de basisbeginselen van het XP-prefetching-schema, dat Microsoft rapporteert dat het opstartproces aanzienlijk wordt versneld (u kunt zien dat XP veel sneller wordt opgestart dan Windows 2000). U vindt meer informatie over prefetching en de andere fast-boot verbeteringen in een whitepaper op http://www.microsoft.com/hwdev/fastboot/. Dave Salomon en ik zijn begonnen met de XP-revisie van "Inside Windows 2000" (voor publicatie halverwege de lente), en daar vind je een nog gedetailleerdere beschrijving.
WINDOWS .NET-VERBINDINGEN
Degenen van jullie die me bij TechEd hebben gemist, kunnen me horen spreken op de Windows .NET Connections-conferentie in Scottsdale, Arizona op 3 oktober. Ik geef presentaties op Windows NT/2000 crashdumpanalyse en kernelwijzigingen in Windows XP. Andere sprekers op de conferentie zijn mede Windows 2000 Magazine bijdragen editors Mark Minasi en Sean Daily. Laat het me weten als u deelneemt aan de conferentie van de nieuwsbrief.
U kunt de abstracten van mijn gesprekken bekijken en een koppeling naar de site windows .NET-verbindingen vinden op http://www.sysinternals.com/ntw2k/info/talk.shtml.
WAT KOMT ER AAN DE DAG?
MIJN ITANIUM-ERVARINGEN
Microsoft heeft me een Itanium-systeem geleend, zodat ik Sysinternals-hulpprogramma's kan overzetten naar Win64. De machine heeft trouwens een aantal indrukwekkende specificaties: 2 733 MHz-processors en 8 GB (!) ram-geheugen. De volgende keer vertel ik je over mijn overdrachtservaringen, inclusief de wijzigingen die ik moest aanbrengen in verschillende hulpprogramma's, zodat ze aan Win64 werken.
Bedankt voor het lezen van de Sysinternals Nieuwsbrief.
Gepubliceerd maandag 20 augustus 2001 17:03 door ottoh
[Nieuwsbrievenarchief ^] [< Volume 3, Getal 1] [Volume 4, Getal 1 >]