[Newsletter-Archiv ^] [< Band 1, Nummer 5] [Band 2, Nummer 2 >]
Der Systems Internals Newsletter Band 2, Nummer 1
Copyright © 2000 Mark Russinovich
6. Januar 2000 – In dieser Ausgabe:
NEUERUNGEN BEI SYSTEM INTERNALS
- PsKill v1.0
- PsList v1.1
- WinObj v2.1
- Contig v1.3
- NTFSCHK v1.0
- HandleEx v2.1
- Ctrl2cap v2.0
- Filemon v4.26
- Bluescreen v2.1
- Fundelete v2.01
- Openlist v1.11
- NT-INTERNALS AUS DEZEMBER
INTERNALS-NEUIGKEITEN
- Veröffentlichung von Win2K DDK
- Absturz von Win2K mit einem Tastendruck
- Schreibgeschütztes Systemspeicherupdate
- Win2K API-Explosion
- David Solomon-Seminare
BALD VERFÜGBAR
- Patente im Zusammenhang mit Microsoft NT
SPONSOR: WINTERNALS SOFTWARE
Der Systems Internals 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/2K. Zu den Winternals Software-Produkten gehören FAT32 für Windows NT 4.0, ERD Commander Professional Edition (erweiterte Startdatenträgerfunktion für Windows NT) und Remotewiederherstellung.
NTFSDOS Professional und NTFS for Win98 von Winternals Software ermöglichen uneingeschränkten Lese- und Schreibzugriff auf Ihre NTFS-Laufwerke unter DOS, Windows 95 und Windows 98. NTFSDOS Pro bietet eine Single-Floppy-Startdatenträgerfunktion unter Windows NT/2K. Mit NTFSDOS Pro können Sie fehlerhafte Treiber löschen, Dateien aktualisieren und eine allgemeine Dateisystemwartung auf NTFS-Laufwerken über eine DOS-Startdiskette durchführen. NTFS für Win98 bietet transparenten Zugriff auf NTFS-Laufwerke unter Windows 95 und Windows 98. Nutzen Sie Anwendungen und Dateien ganz einfach unter NT und Win9x auf NTFS-Laufwerken in Ihrer Dual-Boot-Umgebung. Beide Hilfsprogramme verfügen sogar über eine integrierte NTFS-Chkdsk-Funktion. Eine kostenlose, auf Lesevorgänge beschränkte Version von NTFSDOS Pro ist unter http://www.sysinternals.com/ntfspro.htm verfügbar. Eine kostenlose, auf Lesevorgänge beschränkte Version von NTFS for Win98 ist unter http://www.sysinternals.com/ntfs98.htm. verfügbar.
Guten Tag,
Willkommen beim Systems Internals Newsletter. Der Newsletter hat aktuell 14,000 Abonnenten.
Wie Sie sicher wissen, liegt Win2K am Datenträgerduplizierer bereit. Die RTM-Version (Release-to-Manufacturing) von Win2K wurde schließlich als Build 2195 festgelegt. RC3 war 2128, und wie ich in einem früheren Newsletter beschrieben habe, erhöht Microsoft die Buildnummer jeden Abend – Wochenenden und Feiertage eingeschlossen – beim Kompilieren der aktuellen Quellstruktur.
Ich war im November bei Microsoft unterwegs (siehe das Filemon-Update weiter unten im Newsletter zu den Gründen), und ein Mitglied des Kernelteams nahm mich auf eine Tour durch Gebäude 26 auf dem Microsoft-Campus mit. In Gebäude 26 befinden sich das Windows NT/2K-Basiskernteam und die Windows NT/2K-Build- und Testlabore. Die Build- und Testlabore sind ungefähr gleich groß (etwa 10 x 20 m), aber das Testlabor ist mit Racks voller Computer vollgestopft, während das Buildlabor über einen Schreibtischbereich und Sessel für die Builder verfügt. Jeden Abend extrahieren die Builder die Quellstruktur auf mehrere Quad-Prozessorsysteme und führen einen Compilerlauf durch. Wenn das Einchecken des Codes von jemandem (Gott bewahre) den Build scheitern lässt, wird die betreffende Person angerufen – gleich um welche Uhrzeit, damit sie sich in Bewegung setzt, um das Problem zu beheben. Ab Mitte November war Win2K unter einem Code-Freeze, bei dem die einzigen zulässigen Änderungen von Ausschüssen genehmigt und an "Show-Stopper"-Fehlerbehebungen gerichtet werden mussten.
Sobald ein neuer Build erstellt wurde, übernehmen die Tester und installieren ihn gleichzeitig auf allen Computern in ihrem Labor. Die Systemregale des Testlabors sind mit allem vollgestopft, von kleinen tragbaren Computern bis hin zu geschirrspülergroßen Mehrprozessorservern von allen wichtigen PC-Anbietern. Nach Abschluss der Win2K-Installation führen die Systeme umfangreiche Stresstestskripts aus. Im späteren Teil seiner Entwicklung bestand Win2K Stresstests mit Raten von mehr als neunzig Prozent. Die Raten waren vor der Einführung mehrerer Win2K-Zuverlässigkeitserweiterungen wie dem Driver Verifier viel niedriger, einem Tool, das Entwicklern hilft, Probleme im Rahmen ihrer eigenen Tests abzufangen.
Unabhängig davon, ob ein Build alle Tests besteht oder nicht, wird er auf den internen Verteilungsserver von Microsoft hochgeladen, wo Microsoft-Mitarbeiter ihn herunterladen und installieren können. Wenn durch einen Entwickler ein erhebliches Problem eingetragen wurde, wartet er auf E-Mails von mehreren hundert Mitarbeitern, die in der folgenden Woche darauf stoßen. Nur, wenn ein ernstes Problem mit Sicherheit einen großen Prozentsatz der Benutzer betrifft, sendet das Testteam eine unternehmensweite E-Mail-Warnung (das Senden von E-Mails an über 25.000 Personen ist nicht auf die leichte Schulter zu nehmen).
Während ich dort war, traf ich auch Dave Cutler, den Chefarchitekten von Windows NT. Woran arbeitet er in diesen Tagen? Im November arbeitete das Kernel-Team bereits hart am Nachfolger von Win2K (intern als NT 6 oder Neptune bezeichnet), und Dave arbeitete daran, die Installation für die 64-Bit-Version von Win2K aufzubessern. Dave leitete die 64-Bit-Entwicklung, und 64-Bit-Win2K ist auf dem besten Weg zum Abschluss. Stand November führte das Kernelteam noch 64-Bit-Arbeit an Alphas aus, da Intel erst vor kurzem damit begonnen hatte, Muster von Merced-Prozessoren zu produzieren und es nur einen auf dem Campus gab.
Wie immer bitten wir Sie, den Newsletter an Freunde und Bekannte weiterzuleiten, von denen Sie denken, dass sie ihn interessant finden könnten.
Vielen Dank!
-Mark
NEUERUNGEN BEI SYSTEM INTERNALS
PSKILL V1.0
Die Windows NT- und Win2K-Ressourcenkits enthalten ein "kill"-Befehlszeilen-Hilfsprogramm, aber nur, weil Windows NT und Win2K keines haben. Sie können lokale Prozesse mit dem "kill" aus dem Resource Kit beenden, aber keine Remoteprozesse. Ich entschied mich daher, ein frei verfügbares "kill" zu schreiben, das, wie mein PsList, Remotefunktionalität bietet. PsKill akzeptiert entweder eine Prozess-ID oder einen Namen und einen optionalen Computernamen und beendet übereinstimmende Prozesse entweder auf dem lokalen System oder dem von Ihnen angegebenen Remotesystem. Sie brauchen nicht einmal eine Clientkomponente auf dem Remotecomputer zu installieren. Wenn das Konto, unter dem Sie ausführen, nicht über Administratorrechte auf dem Remotecomputer verfügt, können Sie sich beim Remotesystem anmelden, um den Kill auszuführen, indem Sie der PsKill-Befehlszeile einen Kontonamen und ein Kennwort hinzufügen.
Laden Sie PsKill v1.0 unter http://www.sysinternals.com/pskill.htm. herunter.
PSLIST V1.1
Ich habe PsList vor einiger Zeit als einen Prozess- und Thread-Viewer im UNIX-ps-Stil veröffentlicht. Im Gegensatz zu den ähnlichen Tools in den Windows NT- und Win2K-Ressourcenkits können Sie mit PsList Prozess- und Threadinformationen sowohl auf Remotesystemen als auch auf lokalen Systemen anzeigen. PsList liest wie Perfmon die Informationen der Leistungs-API von Win NT/2K. Diese PsList-Revision bietet Ihnen die zusätzliche Möglichkeit, sich bei einem Remotesystem anzumelden, indem Sie einen Kontonamen und ein Kennwort an der Befehlszeile angeben. Mit dieser Option können Sie auf Remotecomputer zugreifen, für die das Konto, unter dem Sie PsList ausführen, keine Administratorrechte besitzt.
Laden Sie PsList v1.1 unter http://www.sysinternals.com/pslist.htm. herunter.
WINOBJ V2.1
WinObj ist ein Objekt-Manager-Namespace-Viewer für Windows NT/2K. Der Objekt-Manager-Namespace ist ein Namespace, der für Benutzer in der Regel nicht sichtbar ist, aber den Ort darstellt, an dem sich alle benannten Win32- (\BaseNamedObjects
und \??
) und benannten Kernelobjekte befinden. Er dient zugleich als Einstiegspunkt für die Dateisystem-Namespaces (über symbolische Verknüpfungen des Laufwerkbuchstabens unter \??
) und den Registrierungsnamespace (über das Schlüsselobjekt \Key
).
WinObj ähnelt einem Tool im Win32 Software Development Kit (SDK) mit gleichem Namen, aber unser WinObj kann viel mehr als die Microsoft-Version. Wenn Sie beispielsweise die Eigenschaften eines Objekts in unserem WinObj anzeigen, sehen Sie die Verweis- und Handleanzahl anstelle zufälliger Nummern (das WinObj aus dem SDK hat einige größere Fehler). Unser WinObj zeigt Ihnen außerdem den Status von Synchronisierungsobjekten und Objektsicherheitsinformationen.
Dieses neueste WinObj-Update behebt einen Fehler, der die ordnungsgemäße Darstellung einiger der langen Werte von symbolischen Links im Win2K-Namespace verhinderte. Außerdem werden die neuen, benutzerfreundlicheren Win2K-Sicherheits-Editor-Dialogfelder verwendet, wenn Sie es unter Win2K ausführen (unter NT 4 werden nicht dokumentierte Schnittstellen des Sicherheits-Editors verwendet, die von der ACLEDIT.DLL bereitgestellt werden). Zu den Verbesserungen der Benutzeroberfläche gehören die Erinnerung an das beim Beenden angezeigte Verzeichnis, sodass dieses Verzeichnis beim nächsten Starten von WinObj ausgewählt ist, und die Möglichkeit, das Listenansichtsfenster der Verzeichnisinhalte zu sortieren.
Laden Sie WinObj v2.1 unter http://www.sysinternals.com/winobj.htm. herunter.
CONTIG V1.3
Microsoft hat bei der Veröffentlichung von NT 4 integrierte APIs zur Dateidefragmentierung hinzugefügt. Unter http://www.sysinternals.com/defrag.htm. dokumentiere ich die APIs und stelle Beispielcode zur Verfügung, der die API verwendet. Mithilfe der APIs habe ich Contig implementiert, ein Befehlszeilen-Defragmentierungsprogramm, mit dem Sie einzelne Dateien oder Verzeichnisse defragmentieren können. Seit der ursprünglichen Veröffentlichung von Contig habe ich viele Anfragen erhalten, eine Option zur Fragmentierungsanalyse hinzuzufügen, und schließlich bin ich dazu gekommen, diese Option zu implementieren. Mit Contig v1.3 können Sie sehen, wie fragmentiert die von Ihnen angegebenen Dateien geworden sind, sodass Sie bestimmen können, ob Sie einen teureren Defragmentierungsprozess durchführen müssen.
Apropos Dateidefragmentierung: Symantec hat die bisher fortschrittlichste Defragmentierung veröffentlicht, Speedisk 5.0. Um die Konkurrenz hinter sich zu lassen, umgeht es die Defragmentierungs-API und verschiebt Blöcke manuell auf dem Datenträger, damit es Verzeichnisse und sogar die MFT defragmentieren kann, während das System in Betrieb ist. Im Gegensatz zu dem, was Executive Software unter http://www.execsoft.com/diskeeper/infosheet.asp#Q9 angibt, umgeht ihr Diskeeper-Produkt (sowohl Version 4.0 als auch Version 5.0) ebenfalls die Defragmentierungs-API (aber ihr Defragmentierungsprogramm ist nicht annähernd so hoch entwickelt wie das von Norton), insbesondere was die Verzeichniskonsolidierung zur Zeit des Systemstarts angeht. Das Marketing von Executive ist ein weiteres Beispiel dafür, dass Sie nicht alles glauben können, was Sie lesen.
Laden Sie Contig v1.3 unter http://www.sysinternals.com/contig.htm. herunter.
Laden Sie PageDefrag, ein Defragmentierungsprogramm für Registrierungs- und Auslagerungsdateien, unter http://www.sysinternals.com/pagedfrg.htm. herunter.
NTFSCHK V1.0
Eine häufige Klage von PowerUsern, die Win2K neben NT 4 auf ihren Computern installieren, ist, dass das automatische Upgrade von NTFS-Laufwerken auf NTFS v5 durch Win2K es NT 4-Chkdsk unmöglich macht, diese Laufwerke zu überprüfen. Anstatt NTFS v5-Laufwerke zu überprüfen und Fehler zu korrigieren, gibt das NT 4-Chkdsk einfach an, dass es nicht auf Laufwerken ausgeführt werden kann, die mit neueren Versionen von NTFS erstellt wurden, und beendet sich dann. Dadurch müssen Sie mindestens bislang Win2K starten, wenn Sie diese Laufwerke überprüfen möchten.
Mit NTFSCHK können Sie die Win2K-Version von Chkdsk unter NT 4 ausführen. Wie? Mit der gleichen Technologie, die wir für die Ausführung des nativen Chkdsk von NT unter DOS und Windows 9x als Teil von NTFSDOS Professional und NTFSDOS für Win98 entwickelt haben, umschließt NTFSCHK das Win2K-Chkdsk in einer Umgebung, die wie Win2K aussieht.
Laden Sie NTFSCHK v1.0 unter http://www.sysinternals.com/ntfschk.htm. herunter.
HANDLEEX V2.1
HandleEx ist ein vielseitiges Diagnoseprogramm für Windows NT/2K, das zeigt, welche DLLs von Prozessen geladen wurden und welche Objekte sie geöffnet haben (ihre Handles). HandleEx ist nützlich, um Probleme mit der DLL-Versionsverwaltung zu verfolgen, Lecks zu behandeln und zu ermitteln, welche Anwendung auf eine bestimmte Datei, ein bestimmtes Verzeichnis oder einen bestimmten Registrierungsschlüssel zugreift.
Mit Version 2.1 von HandleEx können Sie die Eigenschaften der Objekte anzeigen, die Prozesse geöffnet haben, einschließlich der Verweisanzahl und des Zustands von Synchronisierungsobjekten. Ferner können Sie Objektsicherheitsattribute mit den Sicherheits-Editoren von NT anzeigen und ändern.
Laden Sie HandleEx v2.1 unter http://www.sysinternals.com/handleex.htm. herunter.
CTRL2CAP V2.0
Wenn Sie aus einem UNIX-Hintergrund stammen, werden Sie mir sicherlich zustimmen, dass sich die STRG-Taste auf der PC-Tastatur an der falschen Stelle befindet: Sie sollte sich an der Stelle befinden, an der die Feststelltaste liegt. Und wer verwendet überhaupt die Feststelltaste? Ctrl2cap ist ein Tastaturfiltertreiber, der die Feststelltaste in die linke STRG-Taste ändert und die Feststelltaste als Nebeneffekt ganz entfernt (ich verwende die standardmäßige linke STRG-Taste als Auslöser, wenn ich Half Life spiele).
Zwar funktioniert Ctrl2cap v1.0 unter Win2K, doch werden bei der Verwendung die Win2K-Energieverwaltungsfunktionen deaktiviert, was auf Laptops etwas irritiert. Aus diesem Grund habe ich Ctrl2cap so aktualisiert, dass es dem Windows-Treibermodell (WDM) entspricht, was auch die Energieverwaltungsfreundlichkeit beinhaltet. Ich stelle den vollständigen Quellcode zur Verfügung, und die NT 4- wie auch die Win2K-Versionen werden aus den gleichen Quelldateien erstellt.
Laden Sie Ctrl2cap v2.0 mit Quellcode unter http://www.sysinternals.com/ctrl2cap.htm. herunter.
FILEMON V4.26
Der Grund für meinen Besuch bei Microsoft im November war das "Dateisystemfilter-Plugfest" bei Microsoft (intern hieß es "Irp-olooza"). Das Plugfest brachte alle wichtigen Produkte zusammen, die auf Windows NT/2000-Dateisystemfiltertreibern basieren, kombinierte sie nach Roundrobin-Art und führte Stresstests für die verschiedenen Paare aus. Zu den vertretenen Produkten gehörten etwa neun verschiedene Virenscanner, eine Reihe von Dateiverschlüsselungstools und ein Datenträgerkontingent-Manager. Das Ziel des Fests war es, Interoperabilitätsprobleme im Zusammenhang mit verschiedenen Filterkombinationen zu identifizieren, Fehler in den wichtigsten Filterprodukten zu finden und zu identifizieren und möglicherweise sogar einen Fehler in Windows 2000 zu finden. Da Filemon einer der weltweit am häufigsten verwendeten Filter ist und viele Microsoft-Gruppen für ihre Entwicklungs- und Problembehandlungsarbeit darauf angewiesen sind, haben mich die Plugfest-Organisatoren eingeladen, zur Veranstaltung zu kommen und es zu vertreten.
Filemon hat alle Belastungstests ohne Vorfälle bestanden, mit einer Ausnahme. Da es sich bei Filemon um einen dynamisch geladenen Filtertreiber handelt, wird er oberhalb aller Produkte angeordnet, die bei der Veranstaltung verwendet wurden, mit Ausnahme von einem. Das Produkt, das über Filemon angeordnet wird, ist ein Virenscanner, der ebenfalls dynamisch geladen wird – tatsächlich baut das Produkt auf Filemon auf. Da der Virenscanner dynamisch geladen wird, haben wir beide Ebenenpermutationen ausprobiert, und in der mit unterhalb angeordnetem Filemon wurde der Virenscanner zum Absturz gebracht. Beim Beenden der GUI von Filemon löschte der Treiber seine Filtergeräteobjekte. Es ist tatsächlich unzulässig, dass ein Filtertreiber ein Filtergeräteobjekt löscht, es sei denn, er erhält einen Befehl vom E/A-Manager, der ihn dazu auffordert (FastIoDetach
in Dateisystemfiltern und IRP_MJ_PN
P mit IRP_MN_REMOVE_DEVICE
in WDM). Es ist nicht überraschend, dass das unerwartete Verschwinden der Geräteobjekte von Filemon dazu führte, dass der Virenscanner auf nicht zugeordneten Speicher zugriff und abstürzte.
Glücklicherweise trat der Absturz von Filemon in der letzten Sitzung des Plugfests auf, so dass ich nur geringfügig in Verlegenheit kam, und da die Tests mindestens einen ernsthaften Fehler oder ein Interoperabilitätsproblem in jedem verwendeten Produkt gefunden haben, war ich nicht allein. Filemon v4.26 ist die Version, die den beim Plugfest erkannten Fehler korrigiert.
Bevor ich überhaupt am Plugfest teilnahm, habe ich in Filemon einen Fehler gefunden, der für Entwickler*innen von NT-Geräten und Dateisystemtreibern von Interesse sein könnte. Ich habe Filemon kürzlich geändert, damit es den schlecht dokumentierten Synchronisierungsmechanismus für Executive Resource (E-Resource) verwendet. Die Dateisystemtreiber von Microsoft verwenden E-Resources in großem Umfang, sodass ich meinte, es wäre lehrreich, ihre Verwendung in den Quellcode von Filemon aufzunehmen. E-Ressourcen müssen von Threads abgerufen werden, für die APCs (asynchrone Prozeduraufrufe) deaktiviert sind. Das muss man einfach "wissen", denn in der DDK-Dokumentation wird es nicht erwähnt. Leider habe ich in der Eile der Implementierung erforderliche Funktionsaufrufe weggelassen, mit denen die den E-Resource-Erwerb durch Filemon umgebenden APCs deaktiviert und wieder aktiviert werden. Dieser Fehler verursacht nur in sehr seltenen Fällen Probleme, daher habe ich ihn erst erkannt, als der Treiberprüfer von Win2K ihn für mich abgefangen hat. Zum Beheben des Problems habe ich einen Aufruf von KeEnterCriticalSection, bevor eine E-Ressource erworben, und von KeLeaveCriticalSection nach dem Freigeben einer E-Ressource hinzugefügt.
Filemon v4.26 kann hier heruntergeladen werden: http://www.sysinternals.com/filemon.htm.
BLUESCREEN V2.1
Der Bluescreen-Bildschirmschoner ist ein Bildschirmschoner, den ich geschrieben habe, der den gefürchteten Windows NT Blue Screen of Death (BSOD) simuliert. Ich habe die ursprüngliche Version geschrieben, bevor Win2K-Releases verfügbar waren, also simulierte es den BSOD und Neustart von NT 4, komplett mit von Chkdsk erkannten Datenträgerfehlern. Ich habe zwei Versionen zur Verfügung gestellt: eine, die Datenträger-E/A ausführte, um noch realistischer zu wirken, und eine, die das nicht tat. Nachdem Win2K Beta 3 veröffentlicht war, habe ich Bluescreen aktualisiert, um den neuen Win2K-BSOD und den Systemneustart zu simulieren. In RC3 hat sich der Neustartbildschirm geändert, sodass ich Bluescreen erneut aktualisieren musste. Zugleich habe ich die Datenträger-E/A-Erzeugung als Option in den Eigenschaften des Bildschirmschoners von Bluescreen konfiguriert, anstatt zwei Versionen zu veröffentlichen.
Laden Sie Bluescreen v2.1 unter http://www.sysinternals.com/bluescrn.htm. herunter.
FUNDELETE V2.01
Nach langer, langer Wartezeit kehrt unser Undelete für Windows NT als Fundelete für Windows NT zurück. Fundelete ist ein Hilfsprogramm, das den Windows NT/2K-Papierkorb erweitert, um Dateien zu erfassen, die aus Programmen und an der Befehlszeile gelöscht wurden, sowie Dateien, die aus dem Explorer gelöscht wurden. Warum die Namensänderung? Einige Monate nachdem Bryce und ich Undelete für Windows NT veröffentlicht haben, veröffentlichte Executive Software Network Undelete, ein ähnliches Hilfsprogramm. Ein Jahr später entschieden sie, dass ihnen der Name unseres Hilfsprogramms besser gefällt als ihr eigener, also änderten sie ihren in Undelete für Windows NT. Zur gleichen Zeit ließen sie uns von ihren Anwälten ein Schreiben senden, das uns warnte, die eingetragene Marke für das Wort "undelete" zu verletzen, die sie seit 1987 besitzen. Wir haben den Namen unseres Hilfsprogramms geändert, anstatt uns auf die Auseinandersetzung einzulassen.
Entwickler können den Quellcode für den Kern des Fundelete-Gerätetreibers herunterladen, der einige leistungsstarke Treibertechniken anschaulich macht, darunter das Abrufen der SID eines Benutzers aus einem Treiber, das Auflisten der Inhalte eines Verzeichnisses aus einem Treiber und das Erstellen neuer IRPs.
Laden Sie Fundelete for Windows NT v2.01 unter http://www.sysinternals.com/fundelete.htm. herunter.
OPENLIST V1.11
Openlist ist ein Windows 9x-Hilfsprogramm, das alle auf dem System geöffneten Dateien anzeigt. Version 1.11 bietet Ihnen die Möglichkeit, detaillierte Informationen zu den Dateien anzuzeigen, einschließlich Versionsinformationen für DLLs.
Laden Sie Openlist v1.11 unter http://www.sysinternals.com/openlist.htm. herunter.
NT-INTERNALS AUS DEZEMBER
Meine Kolumne „NT Internals“ in der Dezember-Ausgabe des Windows NT Magazine trägt den Titel „Inside Win2K Scalability Enhancements, Part 2“ (Innenansichten der Skalierbarkeitsverbesserungen von Win2K, Teil 2). Dieser zweite Teil einer zweiteiligen Reihe beschreibt die Verbesserungen, die Microsoft in Win2K für die Skalierbarkeit von Mehrprozessorsystemen vorgenommen hat, einschließlich des Auftragsobjekts, neuer Quantensteuerelemente, neuer Planungsklassen und Threadpools im Benutzermodus.
Im vergangenen August hat das Windows NT Magazine seine Richtlinie zum Durchsuchen von Online-Artikeln geändert, sodass nur Abonnenten zugreifen durften. Letzten Monat haben sie die Richtlinie wieder gelockert, auf den Stand vor August. Jetzt können Nichtabonnent*innen Artikel kostenlos anzeigen, die mehr als vier Ausgaben alt sind.
Eine vollständige Liste unserer Publikationen finden Sie unter http://www.sysinternals.com/publ.htm.
INTERNALS-NEUIGKEITEN
VERÖFFENTLICHUNG VON WIN2K DDK
Das endgültige Release des Win2K Device Driver Development Kit (DDK) von Microsoft ist jetzt unter http://www.microsoft.com/ddk. verfügbar. Sie können das Kit kostenlos herunterladen oder die Dokumentation online einsehen.
ABSTURZ VON WIN2K MIT EINEM TASTENDRUCK
Nein, das ist kein Fehler. David Solomon, der Autor von "Inside Windows NT 2nd Edition", hat mir diesen coolen Tipp gegeben. Wenn Sie den DWORD
-Registrierungswert HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll
hinzufügen, ihn auf "1" festlegen und neu starten, können Sie Win2K mithilfe der Tastatur zum Absturz bringen. Während Sie die rechte STRG-Taste gedrückt halten, drücken Sie zweimal hintereinander die ROLLEN-Taste. Beim zweiten Drücken der ROLLEN-Taste wird der Bluescreen des Systems mit der Meldung "Der Endbenutzer hat den Absturzdump manuell generiert" angezeigt.
Die Möglichkeit, das System manuell zum Absturz zu bringen, ist nützlich, wenn der Kernel oder Gerätetreiber von einem Deadlock betroffen ist und der Computer nicht mehr reagiert. Ein Absturzabbild, das während des Deadlocks generiert wird, kann Entwicklern Informationen liefern, die auf die Ursache des Deadlocks schließen lassen. Diese Option wurde so still eingeführt, dass selbst die Kernkernentwickler von Win2K sie nicht kannten, bis ich sie auf dem Plugfest damit bekannt machte.
SCHREIBGESCHÜTZTES SYSTEMSPEICHERUPDATE
In einem früheren Newsletter habe ich über schreibgeschützten Systemspeicher als neues Zuverlässigkeitsfeature in Win2K gesprochen. Wie sich herausstellt, ist in vielen Konfigurationen standardmäßig kein vollständiger Schreibschutz vorhanden. Wenn ein Computer mindestens 128 MB physischen Arbeitsspeicher aufweist, verwendet Win2K "große Seiten" von 4 MB zur Zuordnung des Kernelspeichers. Die Verwendung von 4 MB- anstelle von 4 KB-Seiten spart eine Ebene der Seitenübersetzung und verbessert daher die Leistung. Da sich auf derselben 4 MB-Seite sowohl schreibgeschützter Code als auch Daten mit Lese-/Schreibzugriff befinden können, ist der Schreibschutz auf diesen Systemen deaktiviert, es sei denn, der Benutzer fordert Schreibschutz mithilfe der Treiberüberprüfung an. Wenn die Treiberüberprüfung Schreibschutz erzwingt, verwendet Win2K langsamere 4 KB-Seiten zur Zuordnung des Kernelspeichers, sodass verschiedene Speicherbereiche seitenbündig sind, was bedeutet, dass einzelne Codeseiten als schreibgeschützt markiert werden können.
Daher ist der Schreibschutz nur auf Systemen mit weniger als 128 MB Arbeitsspeicher und solchen aktiv, auf den er durch die Treiberüberprüfung aktiviert wurde. Für Systeme, bei denen der Schreibschutz nicht aktiv ist, erwägt Microsoft die Aufnahme einer Watchdog-Vorrichtung in ein Win2K-Service Pack, die den Systemspeicher überprüft und dann in regelmäßigen Abständen den Arbeitsspeicher anhand der Prüfsumme überprüft. Der Überprüfungsvorgang ist zwar nicht so präzise wie der hardwaregestützte Schreibschutz, würde aber irrtümliche Schreibvorgänge in Bereichen erkennen, die schreibgeschützt sein sollten.
WIN2K API-EXPLOSION
Win2K ist ohne Frage deutlich größer als NT 4. Zugegeben, es gibt viele neue Dienste und integrierte Features, die zur Größe von Win2K hinzugerechnet werden (Active Directory, MMC, COM+ usw.), aber sogar das Kernbetriebssystem ist gewachsen. Ein Grund, warum die Größe des Betriebssystems zugenommen hat, ist, dass die Anzahl der APIs, die für Anwendungen exportiert werden, gestiegen ist. Die DLLs des W2K-Betriebssystemkerns umfassen KERNEL32.DLL, GDI32.DLL, USER32.DLL und ADVAPI32.DLL (NTDLL.DLL ist ebenfalls eine Kernbetriebssystem-DLL, aber KERNEL32 basiert auf NTDLL für Win32-APIs). Sehen wir uns kurz die API-Explosion in beiden an. Dies sind die schieren Zahlen:
LIBRARY | NT 4 SP5 | WIN2K | WACHSTUM |
---|---|---|---|
KERNEL32 | 681 | 823 | 21 % |
GDI32 | 401 | 553 | 38 % |
USER32 | 629 | 695 | 10 % |
ADVAPI32 | 401 | 557 | 39 % |
Beachten Sie, dass das Wachstum in einigen Fällen künstlich um bis zu 30 % aufgebläht wird, da einige APIs sowohl in ANSI- als auch in wide-string-Form vorliegen und daher in den oben genannten Zahlen doppelt gezählt werden.
KERNEL32 ist die DLL, die so genannte "Basisbetriebssystem"-Funktionalität exportiert, einschließlich Prozess-, Arbeitsspeicher-, Datei-E/A- und Gebietsschemaverwaltungs-APIs. Die APIs, die neu in Win2K sind, beinhalten neue Sprachfunktionen (z. B. EnumUILanguages
), Auftragsobjektfunktionen (z. B. AssignProcessToJobObject
), Speicherverwaltungsfunktionen (z. B. AllocateUserPhysicalPages
), Dateifunktionen (z. B. FindFirstVolume
) und ToolHelp32-APIs (z. B. Process32First
).
GDI32 stellt Zeichnungs- und Bitmap-bezogene Routinen zur Verfügung. Ihr Wachstum ist größtenteils auf die Implementierung von verschiedenen neuen Funktionen zurückzuführen, zu denen die neuen Schriftartenverwaltungs-APIs (z. B. CreateFontIndirectEx
), Alphablending- und Pfad-Objekt-Funktionen gehören.
USER32 implementiert Fensterfunktionen, und ein wesentlicher Teil ihres Wachstums liegt in der Verwendung neuer APIs für mehrere Monitore. Andere neue USER32-APIs enthalten eine Reihe von Informationsfunktionen (z. B. GetWindowInfo
, GetTitleBarInfo
).
Schließlich ist ADVAPI32 die DLL, die erweiterte Win32-APIs bereitstellt. Es gibt eine Reihe neuer API-Gruppen, die zu ihrem Wachstum beitragen: EFS (z. B. DecryptFile
), CryptoAPI (z. B. CryptEnumProviders
), Sicherheit (z. B. CheckTokenMembership
), Ereignisablaufverfolgung (z. B. StartTrace
) und Windows Management Interface (WMI) (z. B. WmiOpenBlock
) machen den Großteil der neuen Funktionen aus.
DAVID SOLOMON-SEMINARE
David Solomon Expert Seminars kommt nach San Diego – 21–25. Februar. Entwicklerschulung durch die Jungs, die bei Microsoft unterrichten.
- Win32-Programmierung von Jeffrey Richter
- Power Debugging von John Robbins
- Windows 2000-Gerätetreiber von Jamie Hanrahan
- Windows CE-Gerätetreiber und -Anwendungen von Doug Boling
Weitere Informationen finden Sie unter http://www.solsem.com.
BALD VERFÜGBAR
PATENTE IM ZUSAMMENHANG MIT MICROSOFT NT
Softwarepatentierung ist für Unternehmen, die ihr geistiges Eigentum nutzen möchten, zu einem unverzichtbaren Zeitvertreib geworden. Microsoft ist kein Unbekannter im Patentspiel, und der Kernel von NT weist eine Reihe von Mechanismen auf, die vom US Patent and Trademark Office (PTO) als patentwürdig eingestuft wurden. Zu den Bereichen des Kernels, für die Microsoft Patente erhalten hat, gehören der E/A-Manager und der Objekt-Manager. Beim nächsten Mal gebe ich Ihnen eine Liste der Patente, die ich im NT-Kernel gefunden habe.
Vielen Dank, dass Sie den Systems Internals Newsletter gelesen haben.
Veröffentlicht: Donnerstag, 6. Januar 2000 um 17:09 Uhr von ottoh
[Newsletter-Archiv ^] [< Band 1, Nummer 5] [Band 2, Nummer 2 >]