[Newsletter-Archiv ^] [< Band 3, Nummer 1] [Band 4, Nummer 1 >]
Der Systems Internals Newsletter Band 3, Nummer 2
http://www.sysinternals.com
Copyright (C) 2001 Mark Russinovich
20. August 2001 – In dieser Ausgabe:
LEITARTIKEL
NEUIGKEITEN BEI SYSINTERNALS
- Process Explorer v5.1
- Handle v2.0
- PsInfo v1.1
- PsExec v1.24
- PsLogList v2.07
- Windows XP-Quelllayout
- DebugView v4.13
- PageDefrag v2.1, Contig v1.41
- Sysinternals bei Microsoft
INTERNALS-INFORMATIONEN
- Inside Windows 2000: Die interaktive DVD
- Markieren Sie das Datum: Russinovich und Salomo unterrichten gemeinsam in Austin
- Datenträgerverwaltung an der Befehlszeile
- WINHEC 2001-Folien online
- Neue Schnittstellen für Dateisystemfiltertreiber in XP
- Windows mit einem Tastendruck zum Absturz bringen
- Windows XP Prefetching
- Windows .NET-Verbindungen
BALD VERFÜGBAR
- Meine Itanium-Erfahrungen
SPONSOR: WINTERNALS SOFTWARE
Der Sysinternals-Newsletter wird von Winternals Software gesponsert (im Web unter http://www.winternals.com.). Winternals Software ist der führende Entwickler und Anbieter von erweiterten Systemtools für Windows NT/2000/XP. Zu den Winternals Softwareprodukten gehören FAT32 für Windows NT 4.0, NTFSDOS Professional Edition (ein NTFS-Treiber mit Lese-/Schreibzugriff für DOS) und Remote Recover.
Winternals kündet mit Stolz Defrag Commander Version 1.31 an, die schnellste und umfassendste Defragmentierung auf Unternehmensniveau am Markt. Jetzt können Sie Defragmentierungszeitpläne in Ihrem gesamten Windows-Unternehmen über ein einfaches MMC-Snap-In verwalten, ohne dass Sie Clientsoftware auf Ihren NT- oder Windows 2000-Systemen installieren müssen. Eine Lizenz für 10 Systeme kann online für nur 169 USD erworben werden, und es sind attraktive Mengenrabatte verfügbar. Besuchen Sie http://www.winternals.com/39, um weitere Informationen zu erhalten oder zum die Software herunterzuladen und 30 Tage lang kostenlos zu verwenden.
Guten Tag,
Willkommen beim Sysinternals-Newsletter. Der Newsletter hat aktuell 33.000 Abonnenten.
Ich verwende Computer in verschiedenen Funktionen: als Softwareentwickler; als Benutzer. Und als Systemadministrator (für mein eigenes Netzwerk aus Entwicklungs- und Testsystemen). Da ich die breiteste Zielgruppe für Sysinternals Freeware-Tools und kommerzielle Winternals-Produkte erreichen möchte, zielen die meisten Hilfsprogramme auf mindestens Windows NT 4 bis Windows XP ab, und viele laufen auch unter Windows 95 bis Windows Me. Die meisten Tools, die ich schreibe, betreffen die Systemebene, was bedeutet, dass sie häufig Code für Sonderfälle einer oder mehrerer der verschiedenen Windows-Varianten enthalten. Leider gibt es hinsichtlich Benutzeroberfläche und Kernel erhebliche Unterschiede zwischen der Windows NT- und der Windows 9x-Produktlinie, und sogar Unterschiede zwischen Versionen aus derselben Linie.
Früher habe ich Tests mithilfe einer Reihe verschiedener Debugsysteme durchgeführt, die alle für einen Mehrfachstart der genannten Windows-Varianten konfiguriert waren – das Testen erfolgte dann durch Starten einer Version, Testen und Neustart einer neuen Variante. Abgesehen davon, dass Tests auf diese Weise langsam waren, wurden die Tests manchmal durch störende Überreste von zwischengeschalteten Testbuilds von Hilfsprogrammen verzerrt, die ich nicht ordnungsgemäß bereinigt hatte. Zwar unterhalte ich noch eine Sammlung von Multibootsystemen zum Debuggen von Problemen, durch ein innovatives Produkt namens VMWare (www.vmware.com) sind meine Testzyklen jedoch schneller und einfacher geworden.
VMWare ist eine VM-Umgebung, die Sie verwenden, um virtuelle Computer (Gäste) zu erstellen, die auf Windows NT-, Windows 2000- oder Linux-Installationen (Hosts) ausgeführt werden. Ein Gast kann die meisten Varianten von Windows, DOS und Linux ausführen. Es fühlt sich befremdlich an, eine Version eines Betriebssystems auf einer anderen auszuführen, insbesondere, wenn Sie einen virtuellen Computer im Vollbildmodus ausführen – beispielsweise gibt es praktisch keine Möglichkeit zu erkennen, dass Sie nicht am Bildschirm eines Linux-Computers sitzen, sondern vor der virtuellen Anzeige eines Linux-Computers, der unter Windows 2000 ausgeführt wird. Ein virtueller Computer ist ein durch Software geschaffener Kasten, der das Betriebssystem und die Anwendungen kapselt, die auf dem virtuellen Computer ausgeführt werden, sodass die Software des virtuellen Computers die Versuche des Betriebssystems abfängt, mit der Hardware zu interagieren, deren Existenz es annimmt. Die Software für virtuelle Computer erstellt virtuelle Geräte, die als sorgfältig kontrollierter Ersatz für echte Hardware oder virtuelle Hardware dienen. Wenn beispielsweise eine Anwendung, die auf einem virtuellen Computer ausgeführt wird, der in einem Fenster angezeigt wird, in den Anzeigespeicher des virtuellen Computers schreibt, aktualisiert die Software des virtuellen Computers den Inhalt des Fensters, das die Anzeige des virtuellen Computers darstellt, anstatt die Zugriffe zum eigentlichen Videospeicher durchzulassen. Wenn der virtuelle Computer im Vollbildmodus ausgeführt wird, ermöglicht die Software des virtuellen Computers es diesen Zugriffen, den Videospeicher direkt zu beeinflussen.
Schon allein die Funktion virtueller Computer macht VMWare zu einem nützlichen Tool, da Sie eine beliebige Anzahl von "Testsystemen" auf Ihrer Festplatte vorrätig halten können. Was VMWare noch leistungsfähiger macht, ist die Tatsache, dass Sie einen virtuellen Computer "anhalten", seinen Zustand auf dem Datenträger speichern und ihn später fortsetzen können, indem Sie innerhalb von Sekunden den Zustand wiederherstellen, den er beim Anhalten hatte. Aber das ist noch nicht alles. Ich mache ausgiebig Gebrauch von einem Feature namens "nicht persistente Datenträger", bei dem VMWare einen virtuellen Computer mit seinen virtuellen Datenträgern startet, die die von Ihnen definierten Inhalte enthalten (beispielsweise nur eine grundlegende Betriebssysteminstallation), und verfolge dann Änderungen nach, damit sie rückgängig gemacht werden können und der Ausgangszustand wiederhergestellt werden kann. Wenn ich Testversionen eines Hilfsprogramms installiere und dann sicherstellen muss, dass ich wieder in einem sauberen Zustand bin, der keine Änderungen des Hilfsprogramms widerspiegelt, kann ich die Änderungen einfach rückgängig machen. Ich finde VMWare auch in meinen Rollen als Benutzer und Systemadministrator nützlich. Wenn ich eine Anwendung herunterlade, bei der ich unschlüssig bin, ob ich sie behalten möchte, probiere ich sie einfach zuerst auf einem virtuellen Computer mit einem nicht persistenten Datenträger aus, statt möglicherweise mein Entwicklungssystem zu beschädigen oder es beim Deinstallieren einer Anwendung mit zurückgelassenem Unrat anzufüllen.
Es gibt einige relativ geringfügige Nachteile der aktuellen Version, die mich daran gehindert haben, die Nutzung meiner realen Debugcomputer ganz aufzugeben. Der erste besteht darin, dass aufgrund der fehlenden Unterstützung der virtuellen Computer von DirectX, der Numega SoftICE-Debugger mit virtuellen Computern nur bei einer Bildschirmauflösung von 640x480 verwendet werden kann. Der zweite ist, dass die Virtualisierung serieller Ports von VMWare in einer Weise eingeschränkt ist, dass Kerneldebuggen mithilfe von Windbg oder Kd entweder zwischen dem Host und einem Gast oder zwischen Gästen nicht möglich ist. Letzteres Problem sollte jedoch in der nächsten VMWare-Hauptversion behoben werden.
Besonders interessant an VMWare ist, dass Informatiker bis zum Erscheinen von VMWare die Überzeugung vertraten, dass es unmöglich sei, die x86-Architektur in Software gut genug zu virtualisieren, um ein unverändertes Betriebssystem ohne unerträgliche Leistungseinbußen auszuführen. Die Herausforderungen sind erheblich, insbesondere im Bereich der Hardwaregerätevirtualisierung, und der Erfolg von VMWare wird als Durchbruch angesehen – so sehr, dass VMWare kürzlich ein "Best of Conference"-Papier zur Implementierung der Gerätevirtualisierung auf der jährlichen USENIX Technical Conference veröffentlicht hat. Sie können das Papier unter http://vmware1.m0.net/m/s.asp?HB4162878203X1075673X73339X. lesen.
Apropos USENIX Technical Conference, ich bin selbst Koautor eines dort veröffentlichten Papiers, High-Performance Memory-Based Webservers: Kernel and User-Space Performance (http://www.sysinternals.com/files/webserver.pdf). Die Arbeit beschreibt einige der innovativen Forschungen, an denen ich während meiner Arbeit bei IBM Research mitgewirkt habe. Die Beiträge der Arbeit liegen im Bereich der Kernelmodus-Webserverbeschleunigung, und neben dem Beitrag zur Architektur war ich für einen Großteil der Implementierung unter Windows NT und Windows 2000 zuständig. Das Projekt war so erfolgreich, dass wir kontinuierlich SPECWeb-Weltrekorde für die Leistung von Webservern hielten. Es wurde als immer noch weiterentwickeltes IBM-Produkt namens IBM Netfinity Web Server Accelerator veröffentlicht, und sowohl Microsoft als auch die Linux-Community haben einige der wichtigsten Ideen in ihre eigenen Produkte integriert (z. B. IIS für Windows 2000 und Tux für Linux).
Bitte leiten Sie den Newsletter an alle weiter, für die diese Informationen von Interesse sein könnten.
Vielen Dank!
– Mark
NEUIGKEITEN BEI SYSINTERNALS
PROCESS EXPLORER V5.1
Process Explorer ist der neue Name für HandleEx, ein Mehrzweck-Hilfsprogramm, das detaillierte Informationen zu Prozessen, den von ihnen geladenen DLLs und den Handles für geöffnete Betriebssystemressourcen anzeigt. Zusammen mit dem neuen Namen führen die neuesten Versionen von Process Explorer eine Reihe neuer Features ein, darunter eine effiziente automatische Aktualisierung, eine CPU-Auslastungsspalte, die Möglichkeit, Prozessprioritäten zu ändern und die Meldung von Prozesssitzungs-IDs, wenn es sich bei dem System um einen Terminalserver handelt. Außerdem werden viel mehr Informationen zu Prozessen angezeigt. Beispielsweise können Sie die Liste der Dienste anzeigen, die innerhalb eines Prozesses ausgeführt werden (falls zutreffend), die Umgebungsvariablen eines Prozesses untersuchen und Befehlszeilen von Prozessen anzeigen. Mithilfe einer neuen Sortieroption namens "Prozessstruktur" können Sie die Beziehungen zwischen über- und untergeordneten Prozessen grafisch anzeigen, was Ihnen dabei helfen kann, den Zweck eines Prozesses zu identifizieren. Process Explorer kann unter allen Windows 9x-Versionen sowie unter Windows NT 4 bis Windows XP ausgeführt werden.
Etwas, das aus der Benutzeroberfläche von Process Explorer möglicherweise nicht sofort zu ersehen ist, ist die Möglichkeit, darzustellen, welche Prozesse eine bestimmte Datei oder ein bestimmtes Verzeichnis geöffnet haben. Schalten Sie die Anzeige in den Handle-Modus um, und geben Sie den Namen der betreffenden Datei oder des betreffenden Verzeichnisses in das Suchdialogfeld ein. Die Suchfunktion wird vor allem verwendet, um den Prozess nachzuverfolgen, der Sie daran hindert, eine Datei oder ein Verzeichnis zu löschen oder umzubenennen, Sie können sie aber auch verwenden, um Prozesse aufzulisten, die bestimmte DLLs geladen haben.
Laden Sie Process Explorer v5.1 unter http://www.sysinternals.com/ntw2k/freeware/procexp.shtml. herunter.
HANDLE V2.0
Handle ist die Befehlszeilenversion der Handle-Anzeigefunktion von Process Explorer, mit der Sie die Handles für Betriebssystemressourcen anzeigen können, z. B. Dateien, die von Prozessen geöffnet wurden. In einigen Fällen ist die Verwendung von Handle eine schnellere Möglichkeit, einen Prozess zu identifizieren, der eine Datei oder ein Verzeichnis geöffnet hat, als die Suchfunktion von Process Explorer, da Sie einfach einen Teil des Datei- oder Verzeichnisnamens an der Handle-Befehlszeile eingeben. Neben einer effizienteren Suche nach Handle-Namen funktioniert Handle 2.0 jetzt unter Windows 95/98/Me.
Laden Sie Handle v2.0 unter http://www.sysinternals.com/ntw2k/freeware/handle.shtml. herunter.
PSINFO V1.1
Die neueste Erweiterung der PsTools-Suite mit Verwaltungstools ist PsInfo. PsInfo ist ein Befehlszeilentool, das die Hardware- und Betriebssystemeigenschaften eines Computers meldet. Beispielsweise erfahren Sie, welches Betriebssystem ausgeführt wird, einschließlich der Service Pack-Nummer, des Installations- und Ablaufdatums (falls zutreffend) und der Konfiguration (z. B. Domänencontroller, Mitgliedsserver). Außerdem werden Typ, Geschwindigkeit und Anzahl der CPUs auf dem Computer sowie die Menge des installierten physischen Arbeitsspeichers aufgelistet. Diese Informationen machen PsInfo für die Systemidentifikation oder die Inventur nützlich. Wie alle Tools in der PsTools-Suite wird PsInfo auf dem lokalen oder einem Remotecomputer unter Windows NT, 2000 oder XP ausgeführt.
Laden Sie PsInfo v1.1 unter http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml. herunter.
PSEXEC V1.24
Mit PsExec können Sie Prozesse auf Remotesystemen starten, ohne manuell Software auf dem Remotesystem installieren zu müssen, sofern sich das System in Ihrer Netzwerkumgebung befindet. Die Stärke von PsExec liegt in der Unterstützung für umgeleitete Konsolenprogramm-E/A, bei der die Tastatureingabe und die Textausgabe eines Remotekonsolenprogramms verarbeitet werden, als ob es auf Ihrem lokalen System ausgeführt würde.
Die neueste Version von PsExec unterstützt mehrere ausgeführte Prozesse auf demselben Remotesystem, sodass Sie beispielsweise remote mehrere Eingabeaufforderungen auf einem anderen System öffnen können. Außerdem gibt es eine neue Option "Kopie erzwingen", mit der Sie angeben können, dass PsExec eine Datei zur Ausführung auf einen Remotecomputer kopieren soll, wobei jede vorhandene Version ersetzt wird.
Laden Sie PsExec v1.24 unter http://www.sysinternals.com/ntw2k/freeware/psexec.shtml. herunter.
PSLOGLIST V2.07
PsLogList, ein weiteres PsTools-Hilfsprogramm, gibt Ereignisprotokolle vom lokalen oder einem Remotesystem aus. Im Gegensatz zu eloglist, dem Windows 2000 Resource Kit-Tool mit demselben Zweck, zeigt psLogList die vollständige Ereigniszeichenfolge zu einem Eintrag an, und bei der Ausgabe von Remoteprotokollen verwendet es die Ereignisprotokoll-Zeichenfolgen-Ressourcendateien des Remotesystems anstelle des lokalen Systems.
Version 2.07 von PsLogList enthält einen Befehlszeilenschalter, sodass Sie es anweisen können, erweiterte Informationen zu Ereignisprotokolleinträgen (die zusätzlichen Informationen, die einem Eintrag zugeordnet sein können) auszugeben, und einen neuen Schalter, damit Sie nur die Einträge aus den angegebenen letzten Tagen anzeigen können.
Laden Sie PsLogList v2.07 unter http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml. herunter.
WINDOWS XP SOURCE LAYOUT
Haben Sie sich schon einmal gefragt, wie Microsoft den Quellcode strukturiert, aus dem der Windows NT/2000/XP-Kernel besteht? Mir ging das jedenfalls so, und ich habe festgestellt, dass die Informationen öffentlich zugänglich sind. Wenn Microsoft einen neuen Build von Windows 2000/XP veröffentlicht, werden mehrere Versionen veröffentlicht:
- eine "freie" Einzelprozessorversion
- eine "freie" Einzelprozessorversion, die mehr als 4 GB physischen Arbeitsspeicher unterstützt
- eine "freie" Mehrprozessorversion
- eine "freie" Mehrprozessorversion, die mehr als 4 GB physischen Arbeitsspeicher unterstützt
- eine "überprüfte" Mehrprozessorversion
- eine "überprüfte" Mehrprozessorversion, die mehr als 4 GB physischen Arbeitsspeicher unterstützt
Insgesamt also 6 Versionen. Was das "frei" vom "überprüft" unterscheidet, ist nicht die Tatsache, dass die "freie" Version kostenlos ist (das ist sie nicht), sondern dass die "überprüfte" Version, die im MSDN CD-Satz enthalten ist, Code und Daten enthält, die das Debuggen von Betriebssystem und Gerätetreibern unterstützen. Die "freie" Version wird einfach ohne den zusätzlichen Code kompiliert, der in Anweisungen zur bedingten Kompilierung enthalten ist.
Beispiele für den extra überprüften Code sind Debug-Ausgabeanweisungen, die die Aktionen des Betriebssystems melden, eine strengere Konsistenzüberprüfung der Parameter, die von Gerätetreibern an Kernelmodusfunktionen übergeben werden, und Assertionsanweisungen. Eine Assert-Anweisung überprüft die Annahme eines Entwicklers zu den Bedingungen, die für einen Codebereich gelten. Wenn beispielsweise ein Zeiger auf eine Datenstruktur mit einer identifizierenden Signatur verweisen soll, kann ein Entwickler eine Assertion mit diesem Bezug einfügen. Was geschieht, wenn die Annahme der Assertion verletzt wird? Das hängt von der Assertion ab, aber im Fall der in den überprüften Builds enthaltenen Assertionen wird eine Debug-Ausgabemeldung ausgegeben, und dann wird ein Debuggerhaltepunkt ausgelöst, sodass der Kerneldebugger aktiviert wird (oder, wenn kein Debugger aktiv ist, tritt ein Absturz auf, der hoffentlich eine Speicherabbilddatei generiert, die später untersucht werden kann).
Zum Erleichtern der Identifizierung der von Assertionen erfassten Probleme geben die im überprüften Build verwendeten Assertionen die Datei, Funktion und Zeilennummer des Speicherorts der Assertion aus. Ich kann das Quellstrukturlayout anzeigen, indem ich diese Zeichenfolgen mit meinem Hilfsprogramm "strings" für die Extraktion von Zeichenfolgen extrahiere und sie in einer Java-Strukturansicht organisiere.
Sehen Sie sich das Windows XP-Quelllayout an, und erfahren Sie mehr über Assertionen unter http://www.sysinternals.com/ntw2k/info/xpsrctree.shtml (beachten Sie, dass in IE eine Warnung angezeigt wird, dass die Seite langsam geladen wird. Schließen Sie sie, dann wird die Struktur angezeigt).
DEBUGVIEW V4.13
DebugView ist ein Hilfsprogramm für Entwickler, mit dem Sie Debugausgaben von Anwendungen oder Treibern auf dem lokalen System oder einem Remotesystem erfassen können – sogar von mehreren Systemen gleichzeitig. Diese neueste Version wurde um Kompatibilität mit Windows XP RC 1 ergänzt. DebugView funktioniert unter Windows 9x, Windows Me, Windows NT, Windows 2000 und Windows XP.
Laden Sie DebugView v4.13 unter http://www.sysinternals.com/ntw2k/freeware/debugview.shtml. herunter.
PAGEDEFRAG V2.1, CONTIG V1.41
An der Spitze der beliebtesten Sysinternals-Downloads stehen PageDefrag und Contig. PageDefrag defragmentiert Datendateien des Systemkerns zum Startzeitpunkt, und Contig ist ein Befehlszeilen-Hilfsprogramm zur Defragmentierung von Dateien. Die neuesten Versionen dieser Tools verfügen über eine verbesserte Defragmentierungs-Engine für Windows 2000 und verfügen jeweils über eigene Erweiterungen.
Neben der Defragmentierung von Registrierungs- und Pagingdateien defragmentiert die neueste Version von PageDefrag auch Ereignisprotokolldateien. Und ähnlich wie Chkdsk in Windows 2000 bietet PageDefrag jetzt einen 3-Sekunden-Countdown während des Startvorgangs, während dessen Sie eine beliebige Taste drücken können, damit die Defragmentierung übersprungen wird.
Was Contig einzigartig macht, ist die Tatsache, dass Sie es verwenden können, um einzelne Dateien, ganze Verzeichnisse oder einen ganzen Datenträger zu defragmentieren. Contig zielt darauf ab, bestimmte Dateien zu optimieren, die für die Anwendungsleistung von entscheidender Bedeutung sind, da es im Gegensatz zu kommerziellen Defragmentierern freien Speicherplatz nicht konsolidiert, um eine zukünftige Fragmentierung auf einem Datenträger zu verhindern. Neben der erweiterten Defragmentierungs-Engine bietet das neue Contig eine bessere Formatierung der Ausgabe sowohl im nicht ausführlichen als auch im ausführlichen Modus.
Laden Sie PageDefrag v2.1 unter http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml. herunter.
Laden Sie Contig v1.4 unter http://www.sysinternals.com/ntw2k/freeware/contig.shtml. herunter.
SYSINTERNALS BEI WWW.MICROSOFT.COM
Hier folgt wie immer die aktuelle Version der Sysinternals-Verweise in Microsoft Knowledge Base-Artikeln (KB), die seit dem letzten Newsletter veröffentlicht wurden. Damit sind insgesamt 27 KB-Verweise auf Sysinternals verfügbar.
0x8000FFFF Meldung "Schwerwiegender Fehler" bei SQL Server ODBC-Treiber
http://support.microsoft.com/support/kb/articles/Q243/3/49.ASPACC: Fehlermeldung: ActiveX-Komponente kann ein Objekt nicht erstellen
http://support.microsoft.com/support/kb/articles/Q296/2/05.ASPHOWTO: Ermitteln der Version von MSXML, die von Internet Explorer verwendet wird
http://support.microsoft.com/support/kb/articles/Q296/6/47.ASPHOWTO: Problembehandlung für Fehler "ADODB.Connection" 800a0bb9 von Recordset DTC
http://support.microsoft.com/support/kb/articles/Q197/3/23.ASPINFO: Leitfaden zur Problembehandlung für 80004005 und andere Fehlermeldungen
http://support.microsoft.com/support/kb/articles/Q183/0/60.ASPXADM: Ereignis-ID 3036- und 3026-Meldungen treten auf, wenn Sie den Postfachspeicher auffüllen
http://support.microsoft.com/support/kb/articles/Q296/1/36.ASP
INTERNALS-INFORMATIONEN
INSIDE WINDOWS 2000: DIE INTERAKTIVE DVD
Dave Solomon und ich schrieben "Inside Windows 2000, 3rd Edition", den offiziellen Leitfaden zu den Internals und der Architektur von Windows 2000, und wir freuen uns, die bevorstehende Veröffentlichung des DVD-Tutorials "Inside Windows 2000" bekannt zu geben. Das Tutorial besteht konkret aus 5 DVDs mit über 9 Stunden Inhalt, bestehend aus Dave und mir, die Ihnen die inneren Funktionsweisen von Windows 2000 in einer informellen Umgebung vermitteln.
Zu den behandelten Themen gehören Speicherverwaltung, Prozesse und Threads, Speicher, Dateisysteme, Netzwerk und mehr, und jedes ist zur bequemen Anzeige in Module von 10–20 Minuten Dauer unterteilt. Die Präsentation enthält Dutzende von Diagrammen, Demos, Screenshots und Zusammenfassungslisten, und jedes Modul endet mit Überprüfungsfragen, um Ihr Verständnis zu testen und zu festigen.
Die endgültigen Preise und das Veröffentlichungsdatum wurden noch nicht festgelegt, aber wenn Sie über die Veröffentlichung benachrichtigt werden möchten, senden Sie eine E-Mail mit dem Wort "Interesse" im Betreff an mailto:video@...
. Oder sehen Sie http://www.sysinternals.com/video/ an, um Details zu erfahren.
MARKIEREN SIE DAS DATUM: RUSSINOVICH UND SOLOMON UNTERRICHTEN GEMEINSAM IN AUSTIN
Wenn Sie sich für das DVD-Set interessieren, werden Sie definitiv an einer Gelegenheit interessiert sein, Dave und mir bei Unterrichten von NT-Internals live zuzusehen. Kommen Sie vom 11. bis 13. Dezember nach Austin, Texas, um uns bei der Präsentation unserer 3-tägigen Windows XP/2000/NT Internal Architecture-Klasse zuzuhören. Der Kurs basiert auf „Inside Windows 2000, 3rd Edition“ und behandelt Umgebungssubsysteme, Systemaufrufverteilung, Systemthreads, Starten und Herunterfahren, Interna der Registrierung, Prozesse und Threadplanung, Speicherverwaltung, Sicherheit, das E/A-System, Speicher, NTFS und Cache-Manager. Wenn Sie die Funktionsweise von Windows XP und 2000 verstehen, können Sie die Plattform effizienter nutzen und effektiver debuggen und Probleme beheben.
Wenn Details verfügbar sind, informieren wir Sie im Newsletter und auf der Website, also bleiben Sie dran!
DATENTRÄGERVERWALTUNG AUF DER BEFEHLSZEILE
Unter dem Druck von Systemadministratoren hat Microsoft endlich ein skriptfähiges Befehlszeilentool für die Verwaltung von Datenträgern unter Windows 2000 veröffentlicht. Mit DiskPart können Sie Volumes oder Partitionen erstellen, Spiegelungen erstellen und aufbrechen, Volumes erweitern und Details der Datenträger, Volumes und Partitionen untersuchen. Und besonders schön ist daran, dass DiskPart ein kostenloser Download von http://www.microsoft.com/downloads/release.asp?ReleaseID=31167. ist.
WINHEC 2001-FOLIEN ONLINE
Wenn Sie die jährliche Windows Hardware Engineering Conference (WINHEC) von Microsoft verpasst haben, können Sie trotzdem die Folien aus vielen Präsentationen sehen. Besuchen Sie http://www.microsoft.com/winhec/sessions/driver.htm, um eine Liste mit Sitzungen, Beschreibungen und zugehörigen Links zu Power Point-Decks zu erhalten. Präsentationen von allgemeinem Interesse sind solche zum Debuggen von Treibern, Filtertreibern sowie NDIS-Miniport- und -Zwischentreibern.
NEUE SCHNITTSTELLEN FÜR DATEISYSTEMFILTERTREIBER IN XP
Wenn Sie über eine Echtzeit-Dateispiegelung, eine Virenüberprüfung bei Zugriff oder ein hierarchisches Speicherverwaltungsprodukt verfügen, das auf einem Dateisystemfiltertreiber basiert, sollten Sie sicherstellen, dass Sie über die Änderungen informiert sind, die Microsoft in Windows XP eingeführt hat.
Die größte Änderung betrifft schnelle E/A-Routinen, die Sonderfunktionen, die ein Dateisystemtreiber registriert, damit der Speicher-Manager, der Cache-Manager und das E/A-System Dateisystem-E/A ausführen und mit Dateisystemtreibern interagieren können, ohne IRPs generieren zu müssen. Es mag manche unter Ihnen überraschen, dass es sechs schnelle E/A-Routinen gibt, für die Dateisystemfiltertreiber immer umgangen werden. Sie lauten wie folgt:
FastIoAcquireFileExclusive
FastIoReleaseFile
FastIoAcquireFileForCcFlush
FastIoReleaseFileForCcFlush
FastIoAcquireFileForModWrite
FastIoReleaseFileForModWrite
Der Speicher-Manager ruft FastIoAcquireFileExclusive
und FastIoReleaseFile
vor und nach der Erstellung eines Abschnitts auf, der von einer Datei gestützt wird, und andere Kernelmodus-Subsysteme können diese Routinen aufrufen, um die Erstellung von Abschnitten vorübergehend zu verhindern. Der Cache-Manager ruft FastIoAcquireFileForCcFlush
und FastIoReleaseFileForCcFlush
vor und nach dem Leeren aller oder eines Teils der geänderten zwischengespeicherten Daten einer Datei auf den Datenträger auf, und der Speicher-Manager ruft FastIoAcquireFileForModWrite
und FastIoReleaseFileForModWrite
vor und nach dem Zurückschreiben von als modifiziert gekennzeichneten Seiten in eine Datei auf.
Anstatt schnelle E/A-Funktionen direkt aufzurufen, verwenden Kernelmodussubsysteme FsRtl-Routinen (Surrogate File System Runtime). Die Laufzeitroutinen für die meisten schnellen E/A-Funktionen rufen Filtertreiber auf, indem sie einen Verweis auf ihr Filtergeräteobjekt über einen Aufruf von IoGetRelatedDeviceObject
auf dem Zieldateiobjekt abrufen und dann die entsprechende schnelle E/A-Routine des Filters aufrufen, aber Laufzeitroutinen, die sich lediglich auf die aufgelisteten schnellen E/A-Aufrufe beziehen, rufen stattdessen IoGetBaseFileSystemDeviceObject
auf, wodurch das Geräteobjekt des zugrunde liegenden Dateisystemtreibers zurückgegeben wird. Der Grund, warum die Runtime Filter für diese Funktionen umgeht, ist meiner Meinung nach ein bisschen unbefriedigend: Die Runtime vertraut Filtertreibern einfach nicht. Wenn ein Filter diese Aufrufe nicht an den zugrunde liegenden Dateisystemtreiber weitergibt, verursacht dies eine Datenbeschädigung im Dateisystem und mit ziemlicher Sicherheit einen Absturz. Ein Filtertreiber hat allerdings viele Möglichkeiten, Abstürze zu verursachen.
In Windows XP führt FsRtl eine neue Funktion ein, FsRtlRegisterFileSystemFilterCallbacks
, die von Filtertreibern verwendet wird, um Rückrufe für diese verschiedenen Vorgänge zu registrieren. Dadurch können Dateisystemfiltertreiber diese Vorgänge untersuchen und sie sogar fehlschlagen lassen, und die Runtime kann sicherstellen, dass der zugrunde liegende Dateisystemtreiber bei Bedarf immer aufgerufen wird. Wo finden Sie die Dokumentation zur Funktion? Im Windows XP Installable File System Kit, das für 995 USD bei Microsoft erhältlich ist: http://www.microsoft.com/ddk/ifskit/XPdefault.asp.
WINDOWS MIT EINEM TASTENDRUCK ZUM ABSTURZ BRINGEN
Vor einigen Newslettern habe ich Ihnen erzählt, wie Sie der Windows 2000-Registrierung eine Einstellung hinzufügen können, die es Ihnen ermöglicht, einen Bluescreen-Absturz eines laufenden Systems mit einer speziellen Schlüsselsequenz einzuleiten, so dass Sie Systeme analysieren können, die ansonsten nicht auf Eingaben reagieren. Wie sieht es mit einer Möglichkeit aus, Windows NT und Windows 2000 zum Absturz zu bringen, ohne etwas in der Registrierung festlegen zu müssen?
Öffnen Sie ein Eingabeaufforderungsfenster, ändern Sie das aktuelle Verzeichnis in das Stammverzeichnis Ihres Startlaufwerks (das Laufwerk, auf dem sich \winnt
befindet), und geben Sie dir /s
ein. Geben Sie während der Ausführung einige Male F7+EINGABETASTE ein, und brechen Sie dann die Auflistung ab, indem Sie STRG-C eingeben. Sie stoßen sofort entweder auf einen Bluescreen oder auf einen spontanen Neustart. Beeindruckend, nicht? Im Gegensatz zu dem Trick, den ich zuvor berichtet habe, handelt es sich hier leider nicht um beabsichtigtes Verhalten, sondern um einen Fehler, für den Sie einen Bericht unter http://www.WindowsITsecurity.com/articles/index.cfm?articleID=22037. finden.
Für diejenigen von Ihnen, die den Newsletter verpasst haben, der die Einstellung für den Absturz per Tastatur enthält, fügen Sie ihrer Windows 2000- oder XP-Registrierung den folgenden Registrierungswert gemäß den Anweisungen in der Hilfedatei der Microsoft-Debugtools hinzu:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrll DWORD 1
Starten Sie das System neu, dann können Sie einen Absturz des Systems hervorrufen, indem Sie zweimal ROLLEN eingeben, während Sie die linke STRG-Taste gedrückt halten.
WINDOWS XP PREFETCHING
Microsoft hat sich bei Windows XP auf die Verbesserung der Endbenutzererfahrung konzentriert, und die Benutzer betrachten die Geschwindigkeit, mit der sich ein Computer einschaltet und nutzbar ist, als wichtigen Teil der Benutzererfahrung. Aus diesem Grund haben Microsoft-Entwickler viel Aufwand in die Verbesserung der Leistung von Startprozess und Anwendungsstarts investiert. Sie sind dies auf verschiedene Weise angegangen: erstens durch die parallele Initialisierung von seriellen Gerätetreibern und Netzwerkgerätetreibern, im Gegensatz zu Windows 2000, wo sie seriell initialisiert werden. Zweitens wartet Winlogon nicht mehr, bis der Arbeitsstationsdienst (der selbst auf Netzwerkdienste wartet) verfügbar wird, bevor das Anmeldedialogfeld angezeigt wird und ein Benutzer sich anmelden kann. Schließlich haben sie eine Technik namens "Prefetching" in den Startprozess und den Anwendungsstart integriert. Ich werde kurz auf die Funktionsweise von Prefetching eingehen und auf ein Whitepaper zu Startoptimierungen verweisen, das Microsoft veröffentlicht hat.
Windows (alle Versionen mit Ausnahme von Win3.1 im Real Mode) ist ein Betriebssystem mit bedarfsgesteuerter Seitenladung, bei dem Dateidaten und Code vom Datenträger im Arbeitsspeicher "bemängelt" werden, wenn eine Anwendung versucht, darauf zuzugreifen. Daten und Code werden in Blöcken von Seitengranularität bemängelt, wobei die Größe einer Seite von der Arbeitsspeicherverwaltungs-Hardware der CPU vorgegeben wird. Eine Seite ist auf dem x86 4 KB groß. Beim Prefetching werden Daten und Codepages vom Datenträger in den Arbeitsspeicher übertragen, bevor sie benötigt werden.
Damit er weiß, was vorab abgerufen werden soll, überwacht der XP Cache Manager die Seitenfehler, die von Anwendungen beim Starten hervorgerufen werden. Standardmäßig werden die ersten 2 Minuten des Startvorgangs und die ersten 10 Sekunden eines Anwendungsstarts verfolgt. Nach dem Sammeln einer Ablaufverfolgung, die nach Fehlern strukturiert ist, die in der MFT-Metadatendatei (Master File Table) von NTFS (falls die Anwendung auf Dateien oder Verzeichnisse auf NTFS-Volumes zugreift), den Verweisdateien und den Verweisverzeichnissen erkannt wurden, benachrichtigt er die Prefetch-Komponente des Taskplaners, indem er ein benanntes Ereignisobjekt signalisiert. Der Taskplaner führt einen Aufruf von NtQuerySystemInformation mit einem Informationstyp aus, der eine Abfrage für eine Ablaufverfolgung angibt, und liest ihn ein. Nach der Nachverarbeitung der Ablaufverfolgungsdaten schreibt der Taskplaner sie unter \Windows\Prefetch
in eine Datei. Der Name der Datei ist der Name der Anwendung, auf die sich die Ablaufverfolgung bezieht, gefolgt von einem Bindestrich und der hexadezimalen Darstellung eines Hashs des Dateipfads. Die Datei hat die Erweiterung "PF", ein Beispiel wäre also NOTEPAD.EXE-AF43252301.PF.
Eine Ausnahme von der Dateinamenregel ist die Datei, in der die Ablaufverfolgung des Starts gespeichert wird, die immer NTOSBOOT-B00DFAAD.PF
benannt ist (eine Konvolution des hexadezimalkompatiblen Worts "BAADF00D", das Programmierer häufig verwenden, um nicht initialisierte Daten zu bezeichnen). Alle Fehler, die in den System- oder Leerlaufprozessen auftreten, werden als Teil des Startvorgangs betrachtet, was sinnvoll ist, da Gerätetreiber im Systemprozess geladen und initialisiert werden.
Wenn der Startvorgang beginnt oder eine Anwendung ausgeführt wird, ruft der Prozess-Manager den Cache-Manager auf, um ihm die Möglichkeit zum Prefetching zu geben. Der Cache-Manager sucht im Prefetch-Verzeichnis, ob eine Ablaufverfolgungsdatei für das betreffende Prefetch-Szenario vorhanden ist. Wenn das der Fall ist, ruft der Cache-Manager NTFS auf, um MFT-Metadaten-Dateiverweise vorab abzurufen, er liest den Inhalt der einzelnen Verzeichnisse, auf die verwiesen wird, und öffnet schließlich jede Datei, auf die verwiesen wird. Dann verwendet er den Speicher-Manager, um alle Daten und sämtlichen Code einzulesen, die in der Ablaufverfolgung angegeben und noch nicht im Arbeitsspeicher vorhanden sind. Der Speicher-Manager leitet alle Lesevorgänge asynchron ein und wartet dann, bis sie abgeschlossen sind, bevor der Start einer Anwendung fortgesetzt wird.
Inwiefern bietet dieses Schema einen Leistungsvorteil? Die Antwort liegt in der Tatsache, dass während des normalen Starts oder des Anwendungsstarts die Fehler in einer Reihenfolge auftreten, bei der einige Seiten aus einem Teil einer Datei, dann aus einem anderen Teil der Datei, dann ein paar aus einer anderen Datei, dann einige aus einem Verzeichnis stammen und so weiter. Dieses Herumspringen entspricht direkt dem Herumspringen auf dem Datenträger, und Microsoft hat aus Analysen gelernt, dass die Datenträger-Suchzeiten ein dominanter Faktor sind, der Systemstart- und Anwendungsstartzeiten verlangsamt. Das Suchen wird praktisch eliminiert, wenn durch das Prefetching Daten aus einer bestimmten Datei oder einem bestimmten Verzeichnis gleichzeitig eingelesen werden, bevor der Wechsel zu einer anderen erfolgt.
Um das Suchen noch weiter zu minimieren, organisiert der Taskplaner etwa alle drei Tage eine Liste der Dateien und Verzeichnisse in der Reihenfolge, in der auf sie beim System- oder Anwendungsstart verwiesen wird, und speichert die Liste in einer Datei namens \Windows\Prefech\Layout.ini
. Anschließend wird der Systemdefragmentierer mit einer Befehlszeilenoption gestartet, die den Defragmentierer anweist, die Defragmentierung basierend auf dem Inhalt der Datei zu defragmentieren, anstatt eine vollständige Defragmentierung durchzuführen. Die Defragmentierung sucht einen zusammenhängenden Bereich auf einem Volume, der groß genug ist, um alle aufgelisteten Dateien und Verzeichnisse aufzunehmen, und verschiebt sie dann in den Bereich, sodass sie aufeinander folgend gespeichert werden.
Dies sind die Grundlagen des XP-Prefetch-Schemas, das nach Angaben von Microsoft den Startvorgang erheblich beschleunigt (Sie können tatsächlich erleben, dass XP viel schneller startet als Windows 2000). Weitere Informationen zum Prefetching und zu den anderen Verbesserungen zum schnellen Systemstart finden Sie in einem Whitepaper unter http://www.microsoft.com/hwdev/fastboot/. Außerdem haben Dave Solomon und ich mit der Arbeit an der XP-Revision von "Inside Windows 2000" begonnen (zur Veröffentlichung im Frühjahr), und dort finden Sie eine noch ausführlichere Beschreibung.
WINDOWS .NET-VERBINDUNGEN
Diejenigen unter Ihnen, die mich bei TechEd verpasst haben, können mich auf der Windows .NET Connections-Konferenz in Scottsdale, Arizona, am 3. Oktober sprechen hören. Ich halte Präsentationen zur Absturzabbildanalyse von Windows NT/2000 und Kerneländerungen in Windows XP. Weitere Redner auf der Konferenz sind die Redakteurskollegen Mark Minasi und Sean Daily vom Windows 2000 Magazine. Falls Sie teilnehmen, lassen Sie mich wissen, dass Sie aus dem Newsletter von der Konferenz erfahren haben.
Sie können die Zusammenfassungen zu meinen Vorträgen anzeigen und finden einen Link zur Windows .NET Connections-Website unter http://www.sysinternals.com/ntw2k/info/talk.shtml..
BALD VERFÜGBAR
MEINE ITANIUM-ERFAHRUNGEN
Microsoft hat mir ein Itanium-System geliehen, damit ich Sysinternals-Hilfsprogramme zu Win64 portieren kann. Die Maschine hat übrigens recht beeindruckende technische Daten: 2 733 MHz-Prozessoren und 8 GB (!) Arbeitsspeicher. Das nächste Mal werde ich Ihnen von meinen Portierungserfahrungen berichten, einschließlich der Änderungen, die ich an verschiedenen Hilfsprogrammen vornehmen musste, damit sie unter Win64 funktionieren.
Vielen Dank, dass Sie den Sysinternals-Newsletter gelesen haben.
Veröffentlicht: Montag, 20. August 2001, 19:03 Uhr von ottoh
[Newsletter-Archiv ^] [< Band 3, Nummer 1] [Band 4, Nummer 1 >]