[Nieuwsbrievenarchief ^] [< Volume 2, Getal 1] [Volume 2, Getal 3 >]
The Systems Internals Newsletter Volume 2, Number 2
http://www.sysinternals.com
Copyright © 2000 Mark Russinovich
27 maart 2000 - In dit probleem:
HOOFDARTIKEL
- Mark to cocreatie "Inside Windows 2000, 3rd Ed." met David Salomon
WAT IS ER NIEUW IN SYSINTERNALS
- PsKill v1.03, PsList v1.12
- Verbinding v1.0
- ElogList v1.0
- NTFrob v1.6a
- GetSid v1.1
- HandleEx v2.23
- Regmon v4.24, Filemon v4.28
- AutoRuns v1.0
- NT 4. ACL-editor
- SysInternals T-Shirts
- Meer SysInternals op microsoft.com
- Interne kolommen van maart/april
- Niet zo nieuw spul
INFORMATIE OVER INTERNE GEGEVENS
- Reparsepunten
- De kernelhandlertabel
- Een of meer stuurprogramma's kunnen niet worden gestart
- Microsoft NT-gerelateerde patenten
WAT KOMT ER AAN DE DAG?
- TdiMon
SPONSOR: WINTERNALS SOFTWARE
De Systems Internals Newsletter wordt gesponsord door Winternals Software, op het web op http://www.winternals.com. Winternals Software is de toonaangevende ontwikkelaar en provider van geavanceerde systeemhulpprogramma's voor Windows NT/2K. Winternals Software-producten omvatten FAT32 voor Windows NT 4.0, ERD Commander Professional Edition (geavanceerde opstartschijfmogelijkheid voor Windows NT) en Remote Recover.
Winternals Software NTFSDOS Professional en NTFS voor Win98 bieden u volledige lees- en schrijftoegang tot uw NTFS-stations vanuit DOS, Windows 95 en Windows 98. NTFSDOS Pro biedt mogelijkheden voor één diskette naar Windows NT/2K. Met NTFSDOS Pro kunt u buggystuurprogramma's verwijderen, bestanden vernieuwen en algemeen bestandssysteemonderhoud uitvoeren op NTFS-stations vanaf een DOS-opstart diskette. NTFS voor Win98 biedt u transparante toegang tot NTFS-stations vanuit Windows 95 en Windows 98. Deel eenvoudig toepassingen en bestanden tussen NT en Win9x op NTFS-stations in uw dual-bootomgeving. Beide hulpprogramma's hebben zelfs ingebouwde NTFS Chkdsk-functionaliteit. Een gratis alleen-lezen versie van NTFSDOS Pro is beschikbaar op http://www.sysinternals.com/ntfspro.htm en een gratis alleen-lezen versie van NTFS voor Win98 is beschikbaar op http://www.sysinternals.com/ntfs98.htm.
Hallo allemaal,
Welkom bij de nieuwsbrief Systems Internals. De nieuwsbrief heeft momenteel 20.000 abonnees. De groei van de lijst is de afgelopen twee maanden enorm geweest met meer dan 6.000 nieuwe abonnees! Ga door met het doorgeven van de nieuwsbrief aan uw vrienden.
Ik ben blij om aan te kondigen dat ik cocreatie "Inside Windows 2000, 3rd Edition" met Dave Salomon (http://www.solsem.com). Als u interesse hebt in interne windows NT-functies, hebt u vrijwel zeker Dave's "Inside Windows NT, 2nd Edition" (Microsoft Press) gelezen. De release van Windows 2000 brengt een aantal wijzigingen aan de NT-kernel en omringende onderdelen, enkele grote en enkele kleine, en deze wijzigingen betekenen dat Dave's boek een revisie vereist.
In veel opzichten werken Dave en ik de afgelopen drie jaar onafhankelijk aan "Inside Windows 2000", omdat we de wijzigingen hebben bijgehouden die Microsoft heeft geïntroduceerd in Windows 2000 in de evolutie van NT 5.0 Beta 1 tot en met Windows 2000 build 2195. Ik was al enige tijd bezig met het schrijven van mijn eigen boek 'Windows NT Internals', maar toen de kans kwam om samen te werken met Dave aan een boek van zo'n hoge kwaliteit, en hulp bij het schrijven van de officiële weergave van Microsoft op Windows 2000 Internals, kon ik het niet doorgeven.
Onze beslissing om het boek samen te schrijven is een vrij recente, dus we hebben de afgelopen maanden ons onderzoek, notities en artikelen samengevoegd. Om totaal niet-gerelateerde redenen wonen we toevallig twintig minuten van elkaar in een afgelegen hoek van Connecticut. Onze nabijheid heeft ons in staat gesteld om andere dagen te werken bij elkaars huizen, en we hebben onlangs veel late nachten doorgebracht met onderzoek naar en debatteren over verborgen details van de innerlijke werking van Windows 2000. Je ziet een foto van Dave en ik werken bij z'n huis. http://www.sysinternals.com/inspic.jpg.
Een ongebruikelijk aspect van onze samenwerking is dat Dave volledige toegang heeft tot de Broncode van Windows 2000, terwijl ik niet (ik heb nooit toegang gehad tot windows-broncode buiten die openbaar beschikbaar is in de Device Driver Kit en de Installable File System Kit). Dave vindt dingen uit door door broncodebestanden te lopen, terwijl ik vermeldingen analyseer die zijn geproduceerd door mijn aangepaste demonteerfunctie en verken het lef van Windows 2000 op livesystemen met nuMega's SoftICE kernel-mode foutopsporingsprogramma. Als gevolg hiervan brengen we elk unieke perspectieven naar de tabel en hebben we onze respectieve resources gezamenlijk toegepast om moeilijke vragen samen te beantwoorden.
We werken niet alleen het oorspronkelijke boek bij met wijzigingen in Windows 2000, maar we voegen ook meer dan 30% van de gloednieuwe inhoud toe, waaronder een aantal nieuwe hoofdstukken. Onderwerpen die we in het nieuwe boek introduceren, zijn onder andere opstarten, afsluiten, crashes, opslagbeheer, interne service, interne registerinstellingen en WMI. Deze revisie wordt zelfs geleverd met een cd-rom met een snap-shot van de SysInternals-website, en een half dozijn hulpprogramma's die ik specifiek voor het boek heb geschreven. Met een van de hulpprogramma's, LiveKd, kunt u het foutopsporingsprogramma van de i386kd-kernel uitvoeren op een live systeem, waardoor het eenvoudig is om kernel-internals te verkennen zonder het gedoe van seriële kabels en meerdere computers. Zonder twijfel voegt dit boek aanzienlijke technische informatie en inzicht toe aan de reeds solide basis van zijn voorganger.
Wanneer is het boek beschikbaar? Dave en ik gaan de week van 4 april naar Redmond om definitieve technische beoordelingsopmerkingen van Windows 2000 kernelontwikkelaars te krijgen, en Microsoft Press zegt dat het boek in juli op planken zal staan. Ik hou je natuurlijk op de hoogte in de nieuwsbrief.
Hartelijk dank!
-Merken
WAT IS ER NIEUW IN INTERNE SYSTEMEN
PSKILL V1.03, PSLIST V1.12
PsList is een hulpprogramma waarmee u gedetailleerde informatie kunt bekijken over de actieve processen van een lokaal of extern systeem, en PsKill kunt u processen op een lokaal of extern systeem doden. Deze hulpprogramma's hebben vergelijkbare opdrachtregelsyntaxis, waar u een optionele computernaam kunt opgeven in het formulier "\\computer
". Als u een gebruikersnaam met een computernaam opneemt, kunt u met de hulpprogramma's zich aanmelden bij de opgegeven computer in een ander gebruikersaccount dan de computer waaruit u de hulpprogramma's uitvoert. Deze nieuwste versies bieden een alternatieve manier om het wachtwoord in te voeren in omgevingen waar u ze voor andere personen uitvoert en geen wachtwoorden beschikbaar wilt maken. Als u nu een computeraccount opneemt als optie, maar het wachtwoord weglaat, wordt u gevraagd het wachtwoord in te voeren en uw invoer niet naar het scherm te echoën.
PsKill v1.03 downloaden op http://www.sysinternals.com/pskill.htm.
PsList v1.12 downloaden op http://www.sysinternals.com/pslist.htm.
JUNCTION V1.0
Een vorm van symbolische koppeling is eindelijk naar Windows gekomen in de vorm van Windows 2000 NTFS-verbindingen. Knooppunten zijn symbolische koppelingen voor mappen en de Windows 2000 Resource Kit bevat een hulpprogramma, gekoppeld, waarmee u verbindingen kunt maken en verwijderen. Helaas bevat een eenvoudige Installatie van Windows 2000 geen hulpprogramma's voor het maken van verbindingen en bevat de Platform SDK-documentatie geen adequate documentreparsepunten. Deze tekortkomingen leiden ertoe dat ik Junction implementeert, een hulpprogramma waarmee u niet alleen verbindingen kunt maken, maar bestanden kunt opvragen en informatie over hun reparsepunt kunt weergeven als ze er een hebben. Om ontwikkelaars te helpen hun eigen hulpprogramma's voor reparsepunten te implementeren, heb ik de volledige broncode naar Junction geplaatst. Zie de sectie over reparsepunten verderop in de nieuwsbrief voor meer informatie over knooppunten en hoe Windows 2000 deze implementeert.
Download Junction v1.0 met volledige broncode op http://www.sysinternals.com/misc.htm.
ELOGLIST V1.0
De Windows 2000 Resource Kit bevat een hulpprogramma met de naam ELogDump waarmee u records kunt dumpen vanuit een gebeurtenislogboek op de lokale of externe computer. ELogList is een ElogDump-kloon waarmee u ook een optionele accountnaam en wachtwoord kunt opgeven, zodat u toegang hebt tot de gebeurtenislogboeken van een computer vanuit een ander account dan het account van waaruit u het hulpprogramma uitvoert. ElogList is handig voor het dumpen van gebeurtenislogboeken uit batchbestanden of het vastleggen van gebeurtenislogboekrecords in tekstbestanden die u kunt importeren in spreadsheets voor het bewaren of analyseren van records.
ElogList v1.0 downloaden op http://www.sysinternals.com/eloglist.htm.
NTFROB V1.6A
NTFrob is een applet die u meer controle geeft over de voorgrond- en achtergrond quantums (beurten) die de Windows NT scheduler toewijst aan threads dan op het tabblad Prestaties van het configuratiescherm van het systeem kunt u. Het gebruik van kortere kwantumen kan de reactiesnelheid van interactieve toepassingen verbeteren, terwijl langere kwantumen geschikter zijn voor langlopende serverworkloads. NTFrob blijft doorgaan met nieuwe servicepacks met de nieuwste release, versie 1.6a. Versie 1.6a werkt op alle uitgebrachte versies van NT 4.0 tot en met Service Pack 6a, met uitzondering van Service Pack 6 (Microsoft heeft Service Pack 6 kort na de release teruggetrokken vanwege een aanzienlijke fout). Er is binnenkort een versie van NTFrob beschikbaar die op Win2K werkt.
NTFrob v1.6a downloaden op http://www.sysinternals.com/ntfrob.htm.
GETSID V1.1
Als u een omgeving beheert waarbij het klonen de implementatielast vereenvoudigt, bent u waarschijnlijk geïnteresseerd in GetSid. GetSid is net als het hulpprogramma Windows NT Resource Kit met dezelfde naam, maar met de SysInternals GetSid kunt u SID's verkrijgen, niet alleen voor gebruikersaccounts, maar ook voor computers. Omdat GetSid in de netwerken werkt zonder dat u clientsoftware hoeft te installeren, kunt u Eenvoudig GetSid gebruiken om te controleren of de computers in uw netwerk geen last hebben van het dubbele SID-probleem dat gepaard gaat met klonen.
Download GetSid v1.1 op http://www.sysinternals.com/misc.htm.
Meer informatie over het dubbele SID-probleem op http://www.sysinternals.com/newsid.htm.
REGMON V4.24, FILEMON V4.28
Naast het weergeven van de namen van processen die bestands- of registeractiviteit uitvoeren, tonen deze updates voor Regmon en Filemon u ook proces-id's. Deze verbetering helpt u bij het onderscheiden van bestands- en registertoegang tussen meerdere processen met dezelfde naam.
Met een andere uitbreiding in deze versies kunt u Regmon en Filemon uitvoeren vanuit externe Win2K-terminalservicessessies (in plaats van de console). De toepassingen bereiken deze ondersteuning omdat hun GUI's het versienummer van het besturingssysteem controleren en als ze worden uitgevoerd op Win2K, geeft u het voorvoegsel '\\.\Global\
' op voor de naam die ze gebruiken in hun aanroep naar CreateFile wanneer ze het apparaatobject van hun stuurprogrammaonderdeel openen. In een terminalservicesomgeving worden de namen die apparaatstuurprogramma's aan hun objecten toewijzen, opgeslagen in de globale naamruimte (console), een naamruimte die standaard niet zichtbaar is in externe sessies. Externe sessies hebben elk een lokale naamruimte. Het voorvoegsel 'Globaal' geeft aan aan de Win2K-objectbeheerder dat de objectbeheerder naamzoekacties moet uitvoeren in de globale naamruimte, in plaats van de naamruimte van de sessie waar de zoekactie vandaan komt.
Regmon v4.24 downloaden op http://www.sysinternals.com/regmon.htm.
Filemon v4.28 downloaden op http://www.sysinternals.com/filemon.htm.
AUTORUNS V1.0
Als u een typische configuratie hebt, telkens wanneer u uw systeem opstart en zich aanmeldt bij verschillende onderdelen, zoals Explorer, ziet u verborgen registersleutels en mappen en voert u automatisch de programma's uit waarnaar wordt verwezen. David Salomon presenteert een lijst met alle locaties waar automatisch uitgevoerde bestanden worden opgegeven in zijn "Windows 2000 Internals" seminar (http://www.solsem.com)en Bryce Cogswell heeft de lijst en geschreven AutoRuns, een programma waarmee u hun inhoud kunt bekijken. U zult bijna zeker verrast zijn over de verborgen programma's die zonder uw kennis worden uitgevoerd.
AutoRuns v1.0 downloaden op http://www.sysinternals.com/misc.htm.
HANDLEEX V2.23
De nieuwste versie van HandleEx voegt een aantal nieuwe verbeteringen toe aan de bruikbaarheid van de gebruikersinterface, zoals de mogelijkheid om ctrl-tab te gebruiken tussen de bovenste en lagere weergaven. HandleEx is echter aanzienlijker geïntegreerd met de dialoogvensterinterface van de Win2K-beveiligingseditor, laat zien welke geheugentoewijzingsbestanden een proces heeft geopend en geeft het verleende toegangsmasker weer voor open ingangen.
Wanneer u HandleEx overschakelt naar de weergave op basis van ingangen, worden de bestanden weergegeven die een proces via ingangen heeft geopend. In DE DLL-weergave HandleEx worden de bestanden weergegeven die een proces als modules heeft geladen en met de toevoeging van geheugentoewijzing voor bestandsondersteuning geeft HandleEx de bestanden weer die een proces heeft toegewezen via de geheugen-toegewezen bestands-API's van Win32. Omdat WinNT en Win2K u niet toestaan bestanden te verwijderen die processen hebben toegewezen, helpt handleEx met de geheugentoewijzing bestandsondersteuning u te bepalen welk proces voorkomt dat u een bestand verwijdert vanwege een openstaande toewijzing.
HandleEx v2.23 downloaden op http://www.sysinternals.com/handleex.htm.
NT 4 ACL EDITOR
Over beveiligingseditors gesproken, documenteert Microsoft de nieuwe Win2K-beveiligingseditordialoog-API's in de nieuwste versies van de Platform SDK. De API's van de NT 4-editors zijn echter altijd ongedocumenteerd en blijven op die manier behouden. De NT 4-editors zijn de editors waarmee u werkt wanneer u registersleutelmachtigingen bewerkt in Regedt32 en NTFS-bestandsmachtigingen in Explorer.
Ik heb de NT 4-beveiligingseditor-interfaces vastgesteld toen ik de mogelijkheid voor objectbeveiligingsbewerking toevoegde aan ons WinObj-hulpprogramma en dezelfde interfaces gebruikte om beveiligingsbewerking toe te voegen aan HandleEx. Ik heb eindelijk besloten mijn documentatie te publiceren, zodat u systeemeigen beveiligingseditorfunctionaliteit kunt toevoegen aan de NT 4-versies van uw eigen toepassingen.
Download de documentatie van de NT 4 ACL-editor op http://www.sysinternals.com/acledit.htm.
WinObj downloaden op http://www.sysinternals.com/winobj.htm.
SYSINTERNALS T-SHIRTS
Als u de technische informatie en hulpprogramma's die u bij SysInternals krijgt, laat u de wereld zien door een SysInternals t-shirt te dragen. De t-shirts zijn 100% katoen Hanes Beef-T's, worden afgedrukt in opvallende kleuren op zowel voor- als achterkant en kost slechts $ 14,95. Bovendien gaat $ 5 van elke verkoop naar de American Cancer Society.
SysInternals t-shirts bekijken en bestellen op http://www.sysinternals.com/tshirt.htm.
MEER SYSINTERNALS AT WWW.MICROSOFT.COM
Ik ben er trots op dat het aantal Microsoft Knowledge Base-artikelen dat gebruikers naar SysInternals-hulpprogramma's verwijst, blijft groeien. Hier volgt de lijst met de recente toevoegingen die ik heb opgespoord.
Q243583 PRB: Mib.bin zorgt ervoor dat de installatie van Visual Studio mislukt http://support.microsoft.com/support/kb/articles/Q243/5/83.ASP
Dit artikel raadt het gebruik van Filemon aan om fouten bij het instellen van Visual Studio op te sporen.Q242131 PROCEDURE: een lijst weergeven met processen waarvoor bestanden zijn geopend http://support.microsoft.com/support/kb/articles/Q242/1/31.ASP
Microsoft verwijst gebruikers naar HandleEx als een hulpprogramma dat laat zien welke bestandenprocessen zijn geopend.Q232060 PROCEDURE: Probleemoplossingsgids voor MDAC-installatie http://support.microsoft.com/support/kb/articles/q232/0/60.asp
DLLView en HandleEx krijgen de spotlight in dit artikel, waarmee gebruikers de hulpprogramma's kunnen gebruiken om processen met MICROSOFT Data Access Component DLL's te vinden, zodat de gebruiker ze kan beëindigen voordat mdAC opnieuw wordt geïnstalleerd.Q245068 ERRMSG: Toegang wordt geweigerd. U hebt geen machtigingen of het bestand is in gebruik http://support.microsoft.com/support/kb/articles/q245/0/68.asp?lng=eng& sa=allkb
NtHandle haalt de verwijzing opnieuw op in dit artikel, waarmee wordt aangegeven hoe u kunt bepalen welk proces een bestand in gebruik heeft wanneer u een fout krijgt bij het verwijderen ervan.Q247957 VOORBEELD: DUPS.EXE gebruiken om DLL-compatibiliteitsproblemen op te lossen http://support.microsoft.com/support/kb/articles/q247/9/57.asp
Dit artikel verwijst naar ListDLLs, DllView en HandleEx als hulpprogramma's waarmee u dll-versieproblemen kunt opsporen.
SysInternals is niet alleen aanbevolen in al deze nieuwe KB-artikelen, Rick Anderson, de auteur van het DUPS-hulpprogramma dat wordt gepresenteerd in het laatste KB-artikel, verwijst naar ListDLLs in zijn MSDN News-artikel, 'The End of DLL Hell'. U kunt het artikel hier online bekijken bij Microsoft: http://www.msdn.microsoft.com/isapi/msdnlib.idc?theURL=/library/techart/DLLdanger1.htm. De aandacht listDLLs ontvangen als gevolg hiervan heeft mij gevraagd om het over te brengen naar Windows 9x, dus versie 2.21 werkt op Windows 9x, Windows NT en Windows 2000.
ListDLLs v2.21 downloaden op http://www.sysinternals.com/listdlls.htm.
KOLOMMEN VOOR INTERNE GEGEVENS VAN MAART/APRIL
Bekijk de problemen van maart en april van Windows 2000 Magazine voor mijn tweedelige kolom Internals in Windows NT en Windows 2000-opslagbeheer. In het eerste deel van de serie beschrijf ik NT 4-schijfpartitionering, geavanceerde volumeconfiguratie, toewijzing van stationsletters en opslagarchitectuur voor apparaatstuurprogramma's.
In deel 2 bedek ik de opslagwijzigingen die aanwezig zijn in Win2K, waaronder nieuwe apparaatstuurprogramma's voor opslagbeheer, partitionering van dynamische schijven, ondersteuning voor geavanceerde volumes waarvoor opnieuw opstarten niet nodig is voor herconfiguratie en de stationslettertoewijzingsmechanismen van Win2K.
INFORMATIE OVER INTERNE GEGEVENS
REPARSEPUNTEN
Om de een of andere reden krijgen mensen altijd enthousiast over trucs voor het bestandssysteem, en Windows 2000 bevat verschillende nieuwe. Vóór Windows 2000 hebben alle Microsoft-bestandssystemen geen functie die bekend is voor UNIX-gebruikers: de symbolische koppeling. Met symbolische koppelingen kunt u een bestand of map maken die verwijst naar een ander bestand of een andere map in de naamruimte van het bestandssysteem. Wanneer een toepassing een koppeling opent, krijgt deze daadwerkelijk toegang tot het doel van de koppeling. Als de koppeling C:\drivers
bijvoorbeeld verwijst naar de map C:\winnt\system32\drivers
, wordt een verwijzing naar de bestandsnaam C:\drivers\ntfs.sys
omgezet in C:\winnt\system32\drivers\ntfs.sys
.
NTFS-versie 5, de NTFS-revisie die is opgenomen in Windows 2000, ondersteunt een mechanisme met de naam reparsepunten. Een reparsepunt is een blok met gegevens die zijn gekoppeld aan een bestand of map met een 'tag' en informatie die is gedefinieerd door het stuurprogramma dat verantwoordelijk is voor het beheren van reparsepunten met die tag. Microsoft definieert verschillende ingebouwde tags, waaronder de verbindings- en koppelpunttags. Wanneer NTFS een reparsepunt tegenkomt tijdens het opzoeken van een bestandsnaam, wordt de zoekactie afgebroken en wordt er een STATUS_REPARSE
code naar de aanroeper geretourneerd. Stuurprogramma's voor bestandssysteemfilters en de I/O Manager-controle voor reparsecodes die naar hun tag worden geparseerd en op een van de verschillende manieren reageren. HSM-reparsepunten (Hierarchical Storage Management) geven aan dat het HSM-subsysteem is verplaatst naar externe opslag (zoals tape), het filterstuurprogramma voor externe opslag (RsFilter.sys), bijvoorbeeld transparant de gegevens van het bestand uit externe opslag haalt, het reparsepunt verwijdert en het bestand opnieuw kan proberen.
Een filterstuurprogramma kan ook de naam wijzigen van het bestand dat wordt geopend. Koppelpunttags vertegenwoordigen koppelpunten voor volumes en stellen u in staat om volumes te verbinden vanuit hun naamruimten. U kunt dus een volume met uw projectdocumenten koppelen aan de \projects
map van uw C:
station. Als u dit doet, worden uw bestandssysteemgegevens ingedeeld en kunt u voorkomen dat u stationsletters in DOS-stijl gebruikt.
Verbindingen lijken op koppelpunten, maar in plaats van een map te koppelen aan een volume, koppelen ze mappen aan andere mappen. Ze zijn de symbolische koppelingsondersteuning van NTFS. Op dit moment vraagt u zich waarschijnlijk af waarom Microsoft geen symbolische koppelingen op basis van bestanden heeft opgenomen. Het antwoord is dat symbolische koppelingen leiden tot schade aan bestaande Win32-toepassingen.
Hoewel er veel typische toepassingsgedragsregels zijn die onverwachte resultaten zouden veroorzaken bij het werken met bestanden die echt symbolische koppelingen zijn, is het verwijderen van een symbolische koppeling met een programma zonder koppeling een eenvoudig voorbeeld. Overweeg een bestand dat is opgeslagen op een centrale locatie waarnaar verschillende symbolische koppelingen verwijzen. Een gebruiker die een van de koppelingen verwijdert, wil waarschijnlijk alleen de koppeling verwijderen en niet het bestand zelf. Als het programma zich echter niet bewust is van symbolische koppelingen, wordt niet gedetecteerd dat het bestand echt een koppeling is en u wordt gevraagd om het gewenste gedrag. De problemen worden ernstiger wanneer een toepassing bestanden maakt die zijn gerelateerd aan het bestand waarnaar wordt verwezen via een koppeling, moeten de gerelateerde bestanden worden opgeslagen in de map waar het koppelingsdoel zich bevindt of in de map waarin de symbolische koppeling zich bevindt?
Microsoft werd geconfronteerd met een moeilijk probleem, en ik weet zeker dat er toepassingen zijn die nog complexere bestandsbewerkingen uitvoeren die zouden breken, zelfs als u een werk rond zou kunnen vinden voor de problemen die ik heb genoemd. Daarom denk ik dat het onwaarschijnlijk is dat we ooit symbolische koppelingen op basis van bestanden in Windows zullen zien.
DE KERNELHANDLERTABEL
De Win2K-objectbeheerder heeft een nieuw type ingangstabel geïntroduceerd waarmee de prestaties van bepaalde typen apparaatstuurprogramma's worden verbeterd. Sommige stuurprogramma's moeten ingangen openen voor systeemobjecten terwijl ze worden uitgevoerd in de beveiligingscontext van een gebruikersproces. Apparaatstuurprogramma's kunnen beveiligingscontroles overslaan bij het openen van objecten, dus moeten ze stappen ondernemen om een beveiligingsgat te voorkomen dat het resultaat is wanneer ze een ingang maken voor een gevoelig object in de handletabel van een niet-gemachtigd proces. NT 4-stuurprogramma's die beveiligingsproblemen voorkomen, moeten werkitems in de wachtrij plaatsen bij werkthreads die worden uitgevoerd in de context van het systeemproces of de KeAttachProcess
API gebruiken om over te schakelen naar de handletabel en adresruimte van het systeemproces. Beide alternatieven kunnen de prestaties verminderen, vooral als het stuurprogramma ze regelmatig moet uitvoeren.
Win2K's oplossing voor dit probleem komt in de vorm van een nieuwe vlag die een stuurprogramma kan doorgeven in een OBJECT_ATTRIBUTES
structuur wanneer ze een object openen en een ingang verkrijgen. De vlag wordt niet gedocumenteerd in de DDK, maar is gedefinieerd in de NTDEF. H-headerbestand als OBJ_KERNEL_HANDLE
. Wanneer de objectbeheerder het opgegeven object heeft geopend en er een ingang wordt gemaakt om terug te keren naar de aanroeper, wordt gecontroleerd of deze vlag aanwezig is. Zo ja, dan wordt de ingang gemaakt in een handletabel met de naam ObpKernelHandleTable in plaats van de handletabel van het momenteel uitgevoerde proces. De handles die objectbeheer retourneert aan bellers die kernel-ingangen aanvragen, hebben hun hoge bitset, zodat alle kernel-ingangen waarden hebben die groter zijn dan 0x80000000.
Wanneer de objectbeheerder een ingang doorgeeft, wordt in een aanroep bijvoorbeeld een ObReferenceObjectByHandle
ingang omgezet naar een aanwijzer naar het onderliggende object van de handle, wordt gecontroleerd of de handleverwijzing een kernelmodusverwijzing is en of de hoge bit van de ingang is ingesteld. Voor verwijzingen die aan deze criteria voldoen, zoekt objectbeheer de ingang in de kernelhandlertabel op in plaats van de handletabel van het momenteel uitgevoerde proces. Een stuurprogramma dat verwijzingen naar kernelgrepen voor beveiligde objecten maakt, voorkomt dus dat er een prestatietreffer wordt gemaakt en dat er beveiligingsgaten worden geopend.
EEN OF MEER STUURPROGRAMMA'S KUNNEN NIET WORDEN GESTART
Hier is een stukje interessante Windows NT/2K trivia voor u. Wanneer u tijdens het opstarten een dialoogvenster ziet waarin wordt aangegeven dat een of meer stuurprogramma's niet kunnen worden gestart, is het de Service Control Manager (SCM) die zowel het bepalen als het presenteren van het dialoogvenster aangeeft.
Hoe weet de SCM dat een stuurprogramma niet kan worden gestart? De SCM scant de HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
registersleutel wanneer deze wordt geïnitialiseerd, op zoek naar apparaatstuurprogramma's met startwaarden die aangeven dat ze worden gestart als opstart- of systeemstartstuurprogramma's. Wanneer er een vermelding wordt gevonden, wordt de objectbeheernaamruimte geopend en wordt er gezocht of de naam van het apparaatstuurprogramma aanwezig is in de map \Drivers. Wanneer een apparaatstuurprogramma met succes wordt gestart, wordt het stuurprogrammaobject in de \Drivers
map geplaatst, dus wanneer de SCM de naam niet kan vinden, wordt ervan uitgegaan dat het stuurprogramma niet is gestart. U kunt de inhoud van de \Drivers
map weergeven met Behulp van WinObj.
WinObj downloaden op http://www.sysinternals.com/winobj.htm.
MICROSOFT NT-RELATED PATENTEN
Softwareoctrooien hebben de laatste tijd veel aandacht gekregen. Het lijkt erop dat het Amerikaanse octrooi- en handelsmerkbureau octrooien verleent aan zelfs de meest voor de hand liggende "innovaties", en bedrijven profiteren van het liberale octrooibeleid om belangrijke technologie voor hun exclusieve gebruik te vergrendelen. Microsoft is geen vreemde voor het octrooispel, maar wat veel mensen niet weten, is dat Microsoft eigenaar is van octrooien op verschillende belangrijke ideeën die ze hebben ontwikkeld met Windows NT. Hier volgt een lijst met de kernelgerelateerde patenten die ik heb ontdekt op de website van IBM Patent Server:
"Systeem voor het uitvoeren van asynchrone bestandsbewerkingen die zijn aangevraagd door runnable threads door voltooiingsberichten te verwerken met verschillende wachtrijthreads en te controleren op voltooiing door runnable threads"
http://www.patents.ibm.com/details?pn=US05758184__Dit patent behandelt de fundamentele ideeën achter het geavanceerde NT-synchronisatiemechanisme genaamd voltooiingspoorten. Met voltooiingspoorten kunnen processen efficiënt wachten op I/O op veel verschillende objecten en ondersteuning gebruiken in de Windows NT/2000-planner, zodat threads die zijn gekoppeld aan een voltooiingspoort effectief gebruikmaken van een multiprocessor.
Lees meer over voltooiingspoorten op http://www.sysinternals.com/comport.htm.
"Serverimitatie van clientprocessen in een op object gebaseerd computerbesturingssysteem"
http://www.patents.ibm.com/details?&p n10=US05187790Imitatie is een krachtige functie van het Windows NT/2000-beveiligingsmodel waarmee een serverthread tijdelijk de beveiligingscontext van een clientthread kan gebruiken wanneer de server activiteiten uitvoert namens de client. Hierdoor kan de server eenvoudig profiteren van het Windows NT/2000-beveiligingsmodel wanneer deze beveiligde objecten voor een client opent. Het is een slimme, zo niet duidelijk, benadering van gedistribueerde beveiliging en Microsoft is eigenaar van het octrooi.
"Waitable object creation system and method in an object based computer operating system"
http://www.patents.ibm.com/details?&p n10=US05057996"Voorwaardelijk object maken systeem met verschillende objectpointers voor toegang tot een set gegevensstructuurobjecten"
http://www.patents.ibm.com/details?&p n10=US05129083"Object container transfer system and method in an object based computer operating system"
http://www.patents.ibm.com/details?&p n10=US05129084"Tijdelijk objectverwerkingssysteem en -methode in een op object gebaseerd computerbesturingssysteem"
http://www.patents.ibm.com/details?&p n10=US05136712"Object transfering system and method in an object based computer operating system"
http://www.patents.ibm.com/details?&p n10=US05297283De Windows NT/2000-objectbeheer implementeert een naamruimte die niet in tegenstelling tot de VFS-naamruimte (Virtual File System) aanwezig is op UNIX-implementaties. Sommige octrooien die Microsoft heeft verkregen op de objectmanager zien er echt uit als octrooien op objectgeoriënteerd ontwerp en er lijken er verschillende te overlappen. Ik ben echter geen octrooiadvocaat, dus dat kan gewoon mijn onbelichte kijkpunt zijn.
Als u de patenten bekijkt, vindt u de namen van verschillende kernontwikkelaars van de Windows NT-kernel, waaronder David Cutler. Interessant is dat sommige van de octrooien werden verkregen voor Digital Equipment Corp van Maynard, MA door NT-ontwikkelaars toen ze aan VMS werkten, maar het octrooiproces duurde zo lang dat de octrooien hen vermelden als gevestigd in Redmond, WA.
WAT KOMT ER AAN DE DAG?
TDIMON
Hebt u ooit de TCP- en UDP-netwerkactiviteit in realtime willen bekijken en wilt u weten welke processen de activiteit uitvoeren? Blijf op de hoogte van TdiMon, een krachtige toevoeging aan de SysInternals Monitoring Toolkit.
Bedankt voor het lezen van de systems Internals Newsletter.
Gepubliceerd maandag 27 maart 2000 19:09 door ottoh
[Nieuwsbrievenarchief ^] [< Volume 2, Getal 1] [Volume 2, Getal 3 >]