Share via


[Nieuwsbrievenarchief ^][< Volume 2, getal 5][Volume 3, getal 2 >]

The Systems Internals Newsletter Volume 3, Nummer 1

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


18 april 2001 - In dit probleem:

  1. REDACTIONELE

  2. WAT IS ER NIEUW IN SYSINTERNALS

    • PsService v1.01
    • PsFile v1.0
    • PsExec v1.11
    • HandleEx v4.0
    • DebugView v4.11
    • Binnen Windows 2000, 3e Ed.
    • Windows 2000 Magazine van februari
    • Sysinternals bij Microsoft
  3. INFORMATIE OVER INTERNE GEGEVENS

    • Sneltoetsen voor cool
    • PnP-foutopsporingsberichten
    • Reverse-engineering-uitspraak
    • Nieuwe Windows XP-systeemoproepen
    • Niet-verbonden netwerken
    • WinDev
    • TechEd US
  4. WAT KOMT ER AAN DE DAG?

    • In Windows XP prefetching

SPONSOR: WINTERNALS SOFTWARE ~~~~

De Sysinternals Newsletter wordt gesponsord door Winternals Software, op het web op http://www.winternals.com. Winternals Software is de toonaangevende ontwikkelaar en provider van geavanceerde systeemhulpprogramma's voor Windows NT/2K. Winternals Software producten omvatten FAT32 voor Windows NT 4.0, NTFSDOS Professional Edition (een read/write NTFS-stuurprogramma voor DOS) en Remote Recover.

Winternals is trots om Defrag Commander NE versie 1.2 aan te kondigen, een voordelige, gebruiksvriendelijke enterprise defragmentatieoplossing die NT 4-ondersteuning toevoegt aan de bestaande ondersteuning voor Windows 95/98/Me en Windows 2000. Defrag Commander NE maakt gebruik van de ingebouwde defragmentatieprogramma's van Windows 2000 en Windows 95/98/Me en voegt een eigen krachtige defragmentatie toe voor Windows NT 4. U kunt nu defragmentatieschema's in uw hele Windows-onderneming beheren vanuit een eenvoudige MMC-module, zonder dat u zelfs clientsoftware hoeft te installeren op uw NT- of Windows 2000-systemen. Er is een licentie van 10 systemen beschikbaar voor online aankoop voor slechts $ 169 en er zijn agressieve hoeveelheidskortingen beschikbaar. Bezoek http://www.winternals.com voor meer informatie.

Hallo allemaal,

Welkom bij de Sysinternals nieuwsbrief. De nieuwsbrief heeft momenteel 31.500 abonnees.

Een van de eerste dingen die u ziet wanneer u een bètaversie van Windows XP installeert, is de opnieuw ontworpen gebruikersinterface, genaamd Luna. De Luna-look-and-feel vervaagt alle aspecten van de interface, van het gedrag van het opstartmenu tot het ontwerp van toepassingsmenu's en dialoogvensters. Deze totale conversie wordt bereikt door gebruik te maken van een "thema"-engine. Thema's worden beschreven in themastijlbestanden (bestanden die eindigen op .msstyles) en het Luna-themabestand, luna.msstylebevindt zich in \Windows\Resources\Themes\Luna. Onder dezelfde map vindt u een submap met de naam Shell, waarin shellstyle.dll zich bevindt. Het is niet duidelijk hoe XP het DLL-bestand gebruikt - het is geladen door Explorer en er een HTML-opmaakmodel in is begraven, maar geen exports. Omdat comdlg.dll en kernel32.dll importeren en elke toepassing een kopie van deze DLL's krijgt, krijgt elk proces ook een geladen kopie van \Windows\System32\UxTheme.DLL, de clientbibliotheek thema's. Dit DLL-bestand exporteert functies zoals , , , en GetThemeColorDrawThemeBackground. GetCurrentThemeNameIsAppThemedIsThemeActive

Het register is de locatie waar het huidige thema is opgegeven en thema's zijn geconfigureerd. Zoek onder HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes en u vindt een sleutel met de naam Apply waar u waarden ziet, zoals 'kleuren' en 'pictogrammen' die aangeven waar het thema actief moet zijn. Onder dezelfde sleutel heeft de Current subsleutel het pad naar het msstyles-bestand voor het huidige thema.

Aangezien 'skinning' de woede is geworden voor toepassingen zoals WinAmp en Windows Mediaspeler, zou u ervan uitgaan dat Microsoft een hulpprogramma publiceert waarmee derden hun eigen thema's ontwikkelen, of ten minste de indeling van het .msstyles bestand en shellstyle DLL documenteren, zodat derden thema-editors kunnen ontwikkelen. Je zou het echter verkeerd hebben. In 'Microsoft Windows XP: Wat is er in voor ontwikkelaars?' (online geplaatst op http://msdn.microsoft.com/library/default.asp?URL=/library/techart/winxpintro.htm), Microsoft maakt duidelijk dat ze geen intentie hebben om thema's van derden toe te staan:

"Op het eerste gezicht kan het potentieel voor meerdere Windows XP-stijlen eruitzien als de skinfunctionaliteit in toepassingen zoals Window Mediaspeler, maar er zijn verschillen. Thema's wijzigen de visuele stijl van het besturingssysteem, maar bieden nog steeds een consistente gebruikersinterface met eerdere versies van Windows. Dit is belangrijk omdat thema's systeembreed worden toegepast. De wijzigingen die van toepassing zijn op een toepassingshuid, zoals het verwijderen van knoppen, zijn niet geschikt op besturingssysteemniveau. De themabestandsindelingen zijn niet openbaar; Microsoft behoudt het ontwerpbeheer voor thema's, zodat een consistente gebruikersinterface wordt toegestaan en de ontwerpcontinuïteit wordt gewaarborgd. Een kit voor themaontwikkelaars is niet beschikbaar met Windows XP.

Het argument dat ze voor een dergelijke houding zorgen, is dat thema's van derden op een of andere manier de gebruikersinterface kunnen breken en dat gebruikers microsoft-ondersteuning bellen voor hulp. Waarom ze niet dezelfde angst hebben met Windows Mediaspeler, weet ik niet. Toch zijn er manieren om een thema-achtig uiterlijk toe te passen op het bureaublad en toepassingen. Bezoek http://www.wincustomize.com/ om Windows-desktop skins te vinden, zoals de nieuwe Aqua-Soft (een windowsblinds huid - http://www.windowblinds.net) die Windows het uiterlijk van het OS X-bureaublad van Apple geeft. En gezien de persistentie van de skinning-community bij het uitzoeken hoe alles eruit komt te zien, weet ik zeker dat er op dit moment mensen zijn die de thema-indeling van Microsoft reverse engineering hebben. Het is slechts een kwestie van tijd voordat iemand een thema-editor publiceert, ongeacht het beleid van Microsoft voor het beheren van thema's.

Wat gaat Microsoft doen wanneer thema-editors en thema's van derden worden weergegeven in Windows XP? We moeten wachten en zien, maar het gedrag van Apple geeft ons mogelijk een preview. Een paar dagen geleden heeft Apple een bedrijf uitgegeven dat een thema-editor voor mac OS ontwikkelt, een staakt-en-desist-order: http://www.macworld.co.uk/news/main_news.cfm?NewsID=2773. Pas op voor themaontwikkelaars.

Geef de nieuwsbrief door aan vrienden die u denkt geïnteresseerd te zijn in de inhoud.

Bedankt!

-Mark

WAT IS ER NIEUW IN SYSINTERNALS

PSSERVICE V1.01

De NT 4 en Win2K Resource Kit hebben een opdrachtregelprogramma voor servicebeheer, SC, zolang ik me kan herinneren. Met SC kunt u de status en configuratie van Win32-services op de lokale of externe systemen bekijken en wijzigen. PsService is een freeware kloon van SC die een paar extra functies heeft.

Het eerste is dat u met PsService verbinding kunt maken met externe systemen met behulp van alternatieve gebruikersreferenties. Dit is handig in gevallen waarin het account van waaruit u het uitvoert, geen beheerdersbevoegdheden heeft op het externe systeem, maar u toegang hebt tot een account dat wel. De tweede is de zoekfunctie van PsService. Als u ooit bent vergeten welk systeem in uw netwerk de DNS, DHCP of een andere service uitvoert, vindt u de zoekfaciliteit nuttig, omdat u hiermee een servicenaam kunt opgeven en de computers waarop de service wordt uitgevoerd, kunt opgeven.

PsService is afhankelijk van de Service Control Manager-API, waarvoor u volledige documentatie in de Platform-SDK kunt vinden. Voor PsService is geen installatie van clientsoftware vereist.

PsService v1.01 downloaden op http://www.sysinternals.com/ntw2k/freeware/psservice.shtml.

PSFILE V1.0

PsFile is een hulpprogramma dat ik heb gemaakt als reactie op aanvragen voor iets dat de beperkingen van de opdracht 'net file' in Windows NT/2K ondervangt. U kunt de ingebouwde opdracht 'net' op NT en Win2K gebruiken met de optie 'bestand' om de bestanden weer te geven die andere computers hebben geopend op shares die door het systeem zijn geëxporteerd. De netopdracht kapt echter lange padnamen af en werkt alleen op het lokale systeem.

PsFile maakt gebruik van dezelfde API's (op de juiste wijze genoeg, de 'Net'-API, die wordt beschreven in de Platform-SDK) als de netopdracht, maar het kapt bestandsnamen niet af en werkt zowel lokaal als extern, zonder dat er clientsoftware hoeft te worden geïnstalleerd.

PsFile v1.0 downloaden op http://www.sysinternals.com/pstools.htm.

PSEXEC V1.11

PsExec is een opdrachtregeltoepassing voor Windows NT/2K waarmee u programma's kunt uitvoeren op externe systemen. Wat het met name krachtig maakt, is dat het op afstand consoleprogramma's inschakelt, zodat u ze interactief kunt uitvoeren. Als u bijvoorbeeld het uitvoerbare opdrachtpromptprogramma (cmd.exe) op een extern systeem start met psExec, hebt u effectief een externe shell en hoeft u geen clientsoftware te installeren.

Naast het fungeren als een lichtgewicht telnet, kunt u met PsExec 'alleen lokaal' toepassingen op afstand inschakelen. IpConfig, het ingebouwde hulpprogramma dat u de netwerkconfiguratie van een systeem laat zien, kan u niet de configuratie van externe systemen weergeven. Met PsExec kunt u deze echter op afstand starten en de uitvoer lokaal bekijken.

In sommige gevallen is het account waarin een toepassing wordt uitgevoerd belangrijk. De toepassing moet mogelijk worden uitgevoerd in uw account, zodat wijzigingen in het register of de bestanden plaatsvinden in de juiste beveiligingscontext. In andere gevallen kan het wenselijk zijn om de toepassing uit te voeren in een andere toepassing dan de toepassing waarin u PsExec uitvoert, en nog andere keren wilt u de externe toepassing laten uitvoeren in het systeemaccount. PsExec ondersteunt al deze situaties.

PsExec voert standaard programma's uit in een 'geïmiteerde' beveiligingscontext. Dit betekent dat als u PsExec uitvoert in het account van de beheerder, het externe proces wordt uitgevoerd in het beheerdersaccount. Vanwege beperkingen voor de kracht van imitatie heeft het externe proces geen toegang tot netwerkbronnen op het externe systeem. Als u een gebruikersnaam en wachtwoord opgeeft op de opdrachtregel van PsExec, start PsExec het externe proces in het alternatieve account en heeft het externe proces toegang tot alle netwerkbronnen die toegankelijk zijn vanuit dat account. Ten slotte kunt u met een opdrachtregeloptie PsExec omschakelen om het externe proces uit te voeren in het systeemaccount: hetzelfde account waarin Win32-services worden uitgevoerd.

Download PsExec v1.11 op http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.

HANDLEEX V4.0

HandleEx is een hulpprogramma met meerdere facetten waarin u de lijst met processen ziet die actief zijn op een computer, evenals de ingangen voor besturingssysteembronnen die ze hebben geopend en de DLL's die ze hebben geladen. De zoekfaciliteit en gedetailleerde presentatie van proces-, handle- en DLL-eigenschappen maken HandleEx het perfecte hulpprogramma voor het opsporen van DLL-versieproblemen, het afhandelen van lekken en het proces dat toegang heeft tot een bepaald bestand of een bepaalde map.

Als u Sysinternals-updates volgt, ziet u dat HandleEx de afgelopen maanden twee primaire versienummers heeft gesprongen. De eerste belangrijke update, v3.0, heeft een aantal functies geïntroduceerd, zoals toepassingspictogrammen in de procesweergave, knopinfo voor alle lijstweergave-items, een veel efficiëntere vernieuwing en een verbeterde zoekfunctie waar u op resultaatitems in het zoekdialoogvenster kunt klikken en HandleEx naar de juiste ingang of DLL-vermelding kunt laten gaan.

Misschien zijn de handigste functies voor ontwikkelaars echter 'vernieuwingsmarkeringen' en verplaatste DLL-markeringen. Vernieuwingsmarkering verwijst naar het gedrag van HandleEx wanneer u de weergave vernieuwt. Nieuwe items, waaronder processen, ingangen of geladen DLL's, die niet aanwezig waren voordat de vernieuwing werd vernieuwd, worden groen gemarkeerd, terwijl items die niet meer bestaan rood zijn gemarkeerd. U kunt niet alleen visueel aan wijzigingen tippen, maar u kunt ook levendig omgaan met lekken die worden uitgevoerd, waarbij nieuw geopende ingangen groen worden weergegeven na een vernieuwing.

HandleEx verplaatste DLL-markering is gerelateerd aan DLL-herlocatie, de term die het gedrag van het modulelaadprogramma in Windows beschrijft, waar het de voorkeursontwikkelaars 'basisadres' niet kan respecteren wanneer ze een DLL bouwen. De code die een linker (het hulpprogramma dat wordt gebruikt voor de laatste fase van DLL of EXE-gebouw) produceert voor een DLL bevat verwijzingen naar intra-DLL-geheugen die zijn ingesteld met de veronderstelling dat het laadprogramma het basisadres van de DLL zal respecteren. Het geheugenbereik in het proces dat een DLL laadt die begint bij het basisadres en geschikt is voor de grootte van de geladen DLL-installatiekopieën, moet gratis zijn om het DLL-bestand te laden op het gewenste basisadres. Wanneer het basisadres wordt gehonoreerd voor verschillende processen, wordt de efficiëntie van geheugengebruik bereikt omdat alle processen hetzelfde DLL-codegeheugen delen.

Wanneer het laadprogramma niet kan voldoen aan het basisadres van een DLL, bijvoorbeeld wanneer een ander al gebruikmaakt van het gewenste adresbereik, moet het laadprogramma 'herlocatie' uitvoeren. Dit omvat het bijwerken van alle intra-DLL-geheugenverwijzingen om het werkelijke laadadres van het DLL-bestand weer te geven. Naast het vertragen van de laadtijd van het proces (meestal onceptibly), kan de verplaatste DLL-installatiekopie niet worden gedeeld met andere processen waarop de DLL is geladen op het voorkeursbasisadres. Dit betekent dat u effectief een tweede kopie krijgt van het DLL-verbruik van geheugen.

Wanneer u zich in de DLL-modus bevindt, kunt u de optie 'Verplaatste DLL's markeren' selecteren, wat resulteert in HandleEx met vermeldingen voor DLL's die niet in het gele basisadres van hun voorkeur zijn geladen. Ontwikkelaars kunnen hun DLL-basisadressen opnieuw instellen om verplaatsingen te voorkomen.

Hoe zit het met HandleEx's spring naar versie 4.0? Deze nieuwste versie van HandleEx biedt volledige handle-weergave naar het Win9x/Me-platform. U kunt nu een proces selecteren en de ingangen zien die ze hebben geopend, hetzelfde als wanneer u HandleEx uitvoert op WinNT/2K/XP. Niet alleen dat, maar ook op WinNT/2K/XP, het bekijken van de eigenschappen van gebeurtenissen, mutexes en semaphores onthult informatie over hun status (gehouden, gesignaleerd).

HandleEx 4.0 downloaden op http://www.sysinternals.com/ntw2k/freeware/handleex.shtml.

DEBUGVIEW V4.11

DebugView is een hulpprogramma voor ontwikkelaars waarmee u foutopsporingsuitvoer van toepassingen of stuurprogramma's op het lokale systeem of een externe kunt vastleggen, zelfs vanaf meerdere systemen tegelijk. Deze nieuwste release voegt compatibiliteit toe met Windows XP Beta 2, enkele bruikbaarheidsfuncties en een functie die is gericht op ontwikkelaars van apparaatstuurprogramma's op WinNT/2K/XP.

Met het filterdialoogvenster van DebugView kunt u filtermaskers opnemen en uitsluiten om de foutopsporingsuitvoer te beperken die u wilt zien. Daarnaast kunt u maximaal vijf verschillende markeringsfilters opgeven, elk met een andere aanpasbare kleur. Als u eerder projecten had waarvoor verschillende filters vereist waren, moest u de filters telkens opnieuw invoeren wanneer u van project bent veranderd. Met DebugView 4.11 kunt u filters opslaan in een bestand om snel opnieuw te laden. Net als voorheen begint DebugView met de filters die u de vorige keer hebt afgesloten.

Soms is het nodig om een foutopsporingsuitvoertracering vast te leggen voor latere analyse of vergelijking met andere traceringen. Voordat de nieuwe versie van DebugView de enige manier om een logboekbestand weer te geven was het laden in een teksteditor, wat betekende dat u geen nuttige markeringsfilters kon toepassen. U kunt nu een DebugView-logboekbestand weer laden in DebugView, zodat u de uitvoer kunt zien zoals u het hebt gezien toen u het oorspronkelijk hebt vastgelegd. Met meerdere DebugView-vensters kunt u traceringen vergelijken.

De laatste nieuwe functie, logboekregistratie tijdens opstarten, complimenteert de crashdumpondersteuning van DebugView in NT/Win2K. Met de crashdumpondersteuning van DebugView kunt u uitvoer van een apparaatstuurprogramma vastleggen en als het stuurprogramma het systeem vastloopt en u crashdumps hebt ingeschakeld (volledig of kernel), gebruikt u DebugView om de foutopsporingsuitvoer van het stuurprogramma uit de dump te extraheren, zodat u de uitvoer van het stuurprogramma tot aan het punt van de crash kunt zien.

Met logboekregistratie tijdens opstarten kunt u uitvoer vastleggen van stuurprogramma's die tijdens het opstartproces worden geladen als opstart- of systeemstartstuurprogramma's. Het stuurprogramma DebugView registreert en buffert maximaal 1 MB aan foutopsporingsuitvoer tijdens het opstarten nadat u logboekregistratie tijdens het opstarten hebt ingeschakeld. Nadat het systeem is gestart, wordt met de DebugView-toepassing de gebufferde uitvoer geïmporteerd voor weergave. En als uw stuurprogramma vastloopt tijdens het opstarten en u crashdumps hebt ingeschakeld, kunt u met de crashdumpondersteuning van DebugView de uitvoer zien die het stuurprogramma vóór de crash heeft gegenereerd.

Download DebugView v4.11 op http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.

BINNEN WINDOWS 2000, 3RD EDITION

Het officiële boek over de interne werking van Windows 2000 is nu beschikbaar! Deze editie, mede-auteur van David Salomon (www.solsem.com) en Mark Russinovich, is meer dan 40% groter dan de vorige, met nieuwe dekking van netwerken, plug-and-play, energiebeheer, services, het register, WMI, opstarten en afsluiten, en opslag. Het bevat ook een cd met verschillende krachtige hulpprogramma's, die nergens anders beschikbaar zijn, voor het onderzoeken van interne windows 2000-interne functies.

Als u naar de Amazon.com pagina voor het boek gaat, http://www.amazon.com/exec/obidos/ASIN/0735610215/o/qid%3D957490318/sr%3D8-1/ref%3Daps%5Fsr%5Fb%5F1%5F1/103-5793119-3499040/systemsinternals/107-2386425-6078131ziet u dat er slechts twee beoordelingen zijn gepost sinds de release van het boek in september. Als je het boek hebt, raden we je sterk aan om je mening te delen met andere potentiële lezers.

Bekijk de inhoudsopgave van het boek en bestel nu via http://www.sysinternals.com/insidew2k.htm.

FEBRUARI WINDOWS 2000 MAGAZINE

Bekijk het probleem van februari van Windows 2000 Magazine voor mijn artikel over NT/Win2K crashdumpanalyse. Het artikel begint met het doorlopen van de basisbeginselen van het configureren van crashdumps en legt uit hoe het besturingssysteem een crashdump maakt (met hints over waarom een dump mogelijk niet kan worden gegenereerd). Vervolgens leg ik uit waar u de nieuwste hulpprogramma's voor dumpanalyse kunt krijgen en het gebruik van een krachtig nieuw Microsoft-hulpprogramma, Kanalyze, kunt doorlopen. Ten slotte kijk ik snel naar het gebruik van een kernelfoutopsporingsprogramma om een dump te onderzoeken. Zelfs als slechts een klein deel van de dumps hun oorzaak met analyse onthullen, moet u de informatie nuttig vinden.

Het artikel wordt online geplaatst via een link op http://www.sysinternals.com/publ.shtml, waar u koppelingen naar al onze publicaties kunt vinden.

SYSINTERNALS AT WWW.MICROSOFT.COM

Sysinternals heeft sinds de laatste nieuwsbrief nog meer Microsoft Knowledge Base-artikelen (KB) weergegeven, waardoor ik het totaal heb gevonden dat ik heb gevonden naar sysinternals-hulpprogramma's voor 17.

  • Q274038: PRB: ASP-fout 8002801d 'Bibliotheek niet geregistreerd'
    http://support.microsoft.com/support/kb/articles/Q274/0/38.ASP
    In dit artikel worden gebruikers doorsturen naar Regmon om fouten met Active Server Pages op te lossen.

  • Q232830: PROCEDURE: Eigendom van bestandsafhandeling bepalen
    http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    Wilt u weten welk proces een bestand heeft geopend? Dit KB-artikel leidt u naar HandleEx.

  • Q2163868: PRB: Toegangsschending tijdens het instellen van de toepassing wanneer het bestand wordt gebruikt
    http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    Visual Basic Setup-toepassingen kunnen vastlopen als een bestand dat ze proberen te kopiëren in gebruik is. HandleEx maakt het ideale hulpmiddel voor het bijhouden van het proces dat verstoort.

  • Q286198: HOWTO: Fouten met 'Machtiging geweigerd' bijhouden in DLL-bestanden
    http://support.microsoft.com/support/kb/articles/Q286/1/98.ASP
    Met Filemon (het artikel vermeldt ook Regmon) kunt u zien welk proces van een COM- of MTS-toepassing een fout 'toegang geweigerd' krijgt.

  • Q246199: BUG: Gewijzigde landinstelling Instellingen in uitgebreide opgeslagen procedure kan leiden tot onjuiste resultaten
    http://support.microsoft.com/support/kb/articles/Q246/1/99.ASP
    In dit artikel wordt aanbevolen om ListDLLs te gebruiken om te zien welke versie van de C-runtime-bibliotheek SQL Server gebruikt.

  • Q196453: Problemen met NTVDM- en WOW-opstartfouten http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP oplossen: gebruikers die problemen ondervinden wanneer ze 16-bits toepassingen starten, worden naar Filemon verwezen om te zien welke bestanden het 16-bits omgevingssubsysteem (NTVDM) fouten bevat bij het openen van fouten.

INFORMATIE OVER INTERNE GEGEVENS

SNELTOETSEN VOOR COOL

Velen van u bekijken de Windows-toets waarschijnlijk op een nieuwer toetsenbord als een toets die gewoon ruimte in beslag neemt. Ik was zo tot onlangs, toen ik een sneltoets met Windows-toets voor een bewerking die ik vaak uitvoer, en nu draag ik het logo van de toets met mijn frequente gebruik. Ik dacht dat ik een aantal sneltoetsen zou delen die ik nuttig vind, die allemaal werken in alle versies van Windows.

Actie Snelkoppeling
Taakbeheer starten Ctrl+shift+escape
Dialoogvenster Systeemeigenschappen weergeven Windows+Break
Alle vensters minimaliseren Windows+m
Alle vensters maximaliseren Windows+M
Mijn computer openen Windows+e
Een bestand zoeken Windows+f
Het dialoogvenster Uitvoeren openen Windows+r

Nadat ik deze via een proces en fout heb vastgesteld, wees David Salomon erop dat ze zijn gedocumenteerd in Windows 2000 help onder "Sneltoetsen voor natuurlijke toetsenborden".

PNP-FOUTOPSPORINGSBERICHTEN

Als u plug-and-play-stuurprogramma's voor Windows 2000 ontwikkelt, zult u misschien verbaasd zijn dat u zelfs de retail-build van Windows 2000 kunt gebruiken om uitgebreide plug-and-play-systeemopsporingsberichten te produceren tijdens de opsomming en het laden van stuurprogramma's. Laat uw kernelfoutopsporingsprogramma aan het begin van het systeem opstarten en stel de interne kernelvariabele PnpEnumDebugLevel in op 2 (de meeste berichten worden geactiveerd met een niveau van 1). Hier volgt een voorbeeld van de uitvoer die u ziet, waarin PnP Manager het swenum-stuurprogramma laadt (software-opsommingsbusstuurprogramma):

.
IopCallDriverAddDevice: Processing devnode 0xfe503208
IopCallDriverAddDevice: DevNode flags going in = 0x000019
IopCallDriverAddDevice: Will load driver
IopCallDriverAddDevice: Opening registry key Root\SYSTEM\0000
IopCallDriverAddDevice:         Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
IopCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
IopCallDriverAddDevice:         Value Service [Type 1, Len 14] @ 0xe14ee82c
IopCallDriverAddDevice:                 Service Name swenum
IopCallDriverAddDevice:                 DriverName is \Driver\swenum
IopCallDriverAddDevice:                 Driver Reference 0xff3a8af0
IopCallDriverAddDevice: Adding Services (type 0)
IopCallDriverAddDevice: Adding Services (type 1)
IopCallDriverAddDevice: Adding Services (type 2)
IopCallDriverAddDevice: Adding driver 0xff3a8af0
IopCallDriverAddDevice:         Routine returned 00000000
.

REVERSE ENGINEERING-UITSPRAAK

Degenen van u die Sysinternals hebben gevolgd, weten dat ik geen toegang heb tot enige Windows-broncode (behalve voor de stuurprogrammabronnen die in de DDK worden verzonden), en dat ik de complexiteit van de implementatie leer door middel van arbeidsintensief gebruik van SoftICE en mijn eigen aangepaste demontageprogramma.

Ik heb een artikel 'Reverse Engineering: Necessary Function or Illegal Activity' (Reverse Engineering: Noodzakelijke functie of illegale activiteit) tegengekomen? (http://www.planetit.com/techcenters/docs/security/news/PIT20010123S0001)dat beschrijft een uitspraak van januari door het 9e Amerikaanse Circuit Court of Appeals in een zaak tussen Sony en Verbinding maken ix die de personen van u interesseren die hetzelfde doen. Sony heeft de zaak tegen Verbinding maken ix gebracht nadat Verbinding maken ix zijn "Virtual Game Station" heeft ontwikkeld, een programma waarmee je Sony PlayStation-games kunt uitvoeren op een pc, en de rechtbank oordeelde dat Verbinding maken ix binnen de wet was toen het de PlayStation (via demontage) om hen in staat te stellen hun emulator te ontwikkelen.

Hoewel de omvang van de wettigheid van reverse engineering, met name het overwegen van shrink-wrap-licenties die het verbieden, nog steeds vaag is, komt dit geval aan de kant van reverse engineering.

WINDOWS XP-KERNELUPDATES

In tegenstelling tot de overstap tussen NT 4 en Windows 2000, heeft de Windows XP-kernel subtielere wijzigingen ondergaan, waarvan veel gericht zijn op prestatieverbeteringen. De kernel-API's die beschikbaar zijn voor ontwikkelaars van stuurprogramma's hebben meer dan 200 nieuwe geëxporteerde kernelfuncties ingevuld, waarbij enkele eerdere gaten worden ingevuld. Filemon en andere Sysinternals-hulpprogramma verkrijgen bijvoorbeeld de naam van het proces dat een bewerking uitvoert door het niet-gedocumenteerde procesomgevingsblok te bereiken. In Windows XP kunnen ze het aanroepen PsGetProcessImageFileName. Er zijn bijna 3 dozijn nieuwe Ps-aanroepen voor het verkrijgen en instellen van proceskenmerken, nieuwe foutopsporingsuitvoer-API's waarmee u het uitvoertype en het foutopsporingsniveau kunt classificeren, en een nieuwe systeemaanroep voor het opslaan van register-hives. Er zijn ook een handvol API's zoals ZwQueryBootOptions, ZwSetBootEntryOrderen ZwDeleteBootEntry voor het bewerken van het 64-bits Windows XP-equivalent van Boot.ini, dat in plaats van in een bestand wordt opgeslagen, wordt opgeslagen op niet-compatibel geheugen.

Er zijn echter belangrijkere wijzigingen boven op de kernel, waarvan de meeste afhankelijk zijn van apparaatstuurprogramma's of kernelondersteuning. Er is bijvoorbeeld een systeemherstelservice die, met behulp van een stuurprogramma voor bestandssysteemfilters (sr.sys), wijzigingen in bestanden bijhoudt, zodat het systeem kan worden teruggedraaid naar een eerder tijdstip. Er is een opslagfilterstuurprogramma met de naam volsnap.sys dat, met de samenwerking van bestandssysteemstuurprogramma's, een bepaald tijdstip van een volume kan maken. Er is een snelle service voor het schakelen tussen gebruikers die gebruikmaakt van terminalservices die zijn ingebouwd in de kernel, zodat meerdere gebruikers kunnen worden aangemeld en kunnen schakelen tussen, en verbeterde ondersteuning voor de fragmentatie-API die wordt geboden door de stuurprogramma's van het bestandssysteem.

Microsoft heeft een witboek gepubliceerd waarin veel van de verbeteringen op http://www.microsoft.com/hwdev/Whistler/download/Whistler_kernel.zip. Er zijn verschillende mate van details, waardoor veel vragen over implementatie en gedrag onbeantwoord blijven, maar het is een redelijk goede algehele beoordeling. Natuurlijk kunt u kijken naar toekomstige Sysinternals nieuwsbrieven en artikelen, en mijn Windows 2000 magazine artikelen, om enkele van hen te beantwoorden.

NIET-VERBONDEN NETWERKEN

Veel van mijn ontwikkelcentra op toepassingen met netwerkfunctionaliteit, maar in Windows 2000 kunt u dergelijke toepassingen niet testen wanneer u een niet-verbonden computer (zoals een laptop) opstart in de standaardconfiguratie. Dat komt doordat de TCP/IP-stack niet is geactiveerd, tenzij het systeem een netwerkverbinding detecteert. Dit betekent bijvoorbeeld dat dir \\laptop\c$ (waarbij 'laptop' de naam van uw computer is) en ping 127.0.0.1 beide mislukken op niet-verbonden systemen. Als u een domeincomputer hebt, kan dit ook leiden tot pijnlijke vertragingen tijdens het opstarten.

Er zijn twee tijdelijke oplossingen voor dit probleem. Een daarvan is het installeren van de Microsoft Loopback-adapter, een virtuele netwerkadapter die kan worden geïnstalleerd met behulp van de wizard Hardware. Het tweede is het uitschakelen van media sense, waardoor het systeem niet detecteert dat de verbinding is verbroken, door een registerwaarde in te stellen zoals beschreven in het Microsoft KB-artikel Q239924: http://support.microsoft.com/support/kb/articles/Q239/9/24.ASP. Met een van deze benaderingen is de TCP/IP-stack actief, zelfs op niet-verbonden systemen, zodat u toegang hebt tot het lokale systeem via netwerk-API's en UNC-paden (zoals \\laptop\c$).

WINDEV

Windev, de Conferentie van Windows-ontwikkelaars, wordt dit jaar gehouden in Boston 11-15 juni. Alle topnamen in Win32-, systemen- en .NET-programmering zijn er, en dit is de enige keer dat u dit jaar deelneemt aan een sessie over Windows 2000 internals die door zowel David Salomon (www.solsem.com) als mij worden gepresenteerd. Dave en ik leveren samen de dagelijkse zelfstudie 'Inside Windows 2000 Fundamentals' op de eerste dag. Ik leer ook een sessie over het programmeren van communicatiemechanismen tussen processen in Windows en een sessie over wat er nieuw is in Windows XP.

U kunt de abstracten van mijn gesprekken bekijken en een koppeling naar de Windev-website vinden op http://www.sysinternals.com/ntw2k/info/talk.shtml.

TECHED US

TechEd is de belangrijkste conferentie van Microsoft, die 10.000 mensen trekt en de afgelopen jaren verkoopt. Dit jaar is het gehouden in Atlanta, Georgia van 17-21 juni en terwijl de focus op .NET is, heeft Microsoft me uitgenodigd om "A Tour of Sysinternals Tools" en "Introduction to Windows NT/2000 Crash Dump Analysis" te presenteren. David Salomon zal er ook zijn, presenteren op Windows 2000 geheugenbeheer en proces- en thread-internen.

Voor degenen van u in Europa ziet u David en ik dezelfde sessies presenteren op TechEd Europe, die zich op 3-6 juli in Barcelona bevindt.

Bekijk mijn abstracten en volg een koppeling naar de TechEd-startpagina van http://www.sysinternals.com/ntw2k/info/talk.shtml.

WAT KOMT ER AAN DE DAG?

IN WINDOWS XP PREFETCHING

Een van de meest merkbare verbeteringen in Windows XP is de snelle opstarttijden. Prefetching is de basis van de verbetering. XP bewaakt de schijftoegang tijdens het opstarten, waarbij de informatie wordt opgeslagen voor gebruik in de volgende opstartbewerking, waarbij de gegevens worden gebruikt om toepassingen in het geheugen te laden voordat ernaar wordt verwezen. De volgende keer ga ik naar de prefetching mechanismen om uit te leggen hoe XP ze implementeert.


Bedankt voor het lezen van de Sysinternals Nieuwsbrief.

Gepubliceerd woensdag 18 april 2001 17:04 door ottoh

[Nieuwsbrievenarchief ^][< Volume 2, getal 5][Volume 3, getal 2 >]