1999. április 14. – Ebben a problémában:

  1. A BELSŐ RENDSZEREK ÚJDONSÁGAI

    • 9x Windows kötetazonosítója
    • EFSDump
    • A Compaq Alpha ListDLL-listája
    • "Inside the Boot Process, Part 2"
    • Áprilisi Windows NT Magazine-cikkem
    • Nincs kredit, ha az esedékes
    • Nem annyira új dolgok
  2. BELSŐ HÍREK

    • Win2K Driver Verifier
    • Y2K tesztelés Boot.ini
  3. MI LESZ A KÖVETKEZŐ?

    • Várakozási sorba ékelt forgózárak a Win2K-ban
    • Tokenmon

SZPONZOR: A TÉLI SZOFTVER

A systems internals hírlevelet a Küldő Software szponzorálja, a weben a következő webhelyen: http://www.winternals.com. A Modern szoftver az NT/2K-hez használható fejlett rendszereszközök vezető fejlesztője Windows szolgáltatója. A Téli szoftvertermékek közé tartozik a FAT32 az Windows NT 4.0, ERD Commander (az Windows NT rendszerindítási képessége) és az NTRecover.

Üdvözlök mindenkit!

Üdvözöljük a rendszerek belső hírleveleinek első telepítésében. Örömmel jelentjük be, hogy a hírlevele már 1000 előfizetőt szerzett be a közleménye óta, egy héttel ezelőtt.

A hírlevelem célja, hogy időben információt adjak az új segédprogramokkal és cikkekkel kapcsolatban, amelyek a Belső rendszereknél jelennek meg, valamint hogy olyan belső rendszerekkel kapcsolatos információkat adjak Önnek, amelyek nem jelennek meg megfelelő fórummal Windows Belső rendszerek webhelyén. Ha bármilyen megjegyzése vagy javaslata van a hírlevelevel kapcsolatban, nyugodtan továbbküldi azokat a mark@. Továbbá továbbítja a hírlevelet bárkinek, aki tudja, hogy érdekelheti. A feliratkozásról, leiratkozásról vagy az előfizetés módosításáról a hírlevelek végén található útmutatás.

Köszönjük!

-Mark (Megjelölés)

A BELSŐ RENDSZEREK ÚJDONSÁGAI

VOLUMEID WINDOWS 9X-HEZ

Bár az Windows NT és Windows 9x lehetővé tesz, hogy a "label" paranccsal módosítsa egy logikai meghajtó vagy hajlékonylemez címkéjét, ezek nem biztosítják azt az lehetőséget, hogy módosítani tudja a meghajtók formázásakor tetszőlegesen hozzárendelt kötet-azonosítókat. A VolumeID program, amely több mint egy éve érhető el az Windows NT-hez a belső rendszerek webhelyén, most már a 9x-es portra Windows portra. Ez az applet lehetővé teszi a merevlemezek és hajlékonylemezek kötet-azonosítóinak a kívántra történő beállítását.

A VolumeID olyan API-kat használ, amelyek lehetővé teszik az alkalmazások számára a közvetlenül a logikai meghajtók olvasását és írását, valamint Win9x rendszeren a fizikai meghajtókat (hajlékonylemezeket), amelyek megkerülik a fájlrendszereket. Az Windows NT/2K VolumeID normál ReadFile és WriteFile használatával fér hozzá a nyers meghajtóadatokhoz – a trükk az, hogyan adja meg az elérni kíván kötet nevét. A 100027- Windows cikkből tájékozódhat arról, hogyan férhet hozzá fizikai vagy logikai meghajtókhoz egy alkalmazásból Windows NT/2K Microsoft tudásbázis cikk alapján. A Windows 9x-es hozzáférése esetén a kódot a Q174569 Microsoft tudásbázis cikkben megadott példakódra alapozhatja. Ha Windows 9x-es 9x-es elérésű közvetlen hajlékonylemezes meghajtó-hozzáférést kell végrehajtania az alkalmazásból, használja a Win32 IOCTL VWIN32_DIOC_DOS_INT13, amely az MSDN-ben van dokumentálva.

Töltse le a VolumeID-t a http://www.sysinternals.com/misc.htm.

EFSDUMP

Windows 2000 a Microsoft beépített fájltitkosítási technológiája, a titkosított fájlrendszer. Az EFS számos új API-t tartalmaz a titkosított fájlok (köztük egy, a QueryUsersOnEncryptedFile) kapcsán, amelyek segítségével megtekintheti, hogy mely felhasználók férhetnek hozzá a titkosított fájlokhoz, és mely felhasználók vannak helyreállítási ügynökként regisztrálva ezekhez a fájlokhoz. Megírtunk egy EFSDump nevű programot, amely lehetővé teszi, hogy ezt az információt könnyen lássa a titkosított fájlokhoz a rendszeren.

Bár én az EFS API-k tárgykörében vagyok, számos új API van, amelyek az áprilisi MSDN-hez képest nem voltak dokumentálva, de a 2000-es Windows kiadási ciklusnak ezen a késő szakaszában Windows zavarba került. A legfontosabb, hogy az OpenEncryptedFileRaw, a ReadFileEncryptedRaw, a WriteFileEncryptedRaw és a CloseEncryptedFileRaw (amelyek mindegyikét a Win2K ADVAPI32.DLL exportálja) jelenleg nem dokumentált. Ezeknek az API-knak a használatára minden olyan alkalmazásnak szüksége van, amely titkosított fájlokról kíván biztonsági másolatot készíteni, ami azt jelenti, hogy vagy a Microsoft csak egyes partnereknek ad át adatokat, vagy a biztonsági mentési szoftvereket készítő vállalatoknak be kell szerezniük a termékeiket az ajtó előtt, amikor a Microsoft végül nyilvánosan dokumentálja azokat. Egy dolog biztos, hogy az Windows 2000 NTBACKUP programjának fejlesztői már hozzáfértek az API-dokumentációhoz: a Win2K Beta 3 NTBACKUP szolgáltatása aktívan használja az API-kat.

Ha érdeklik az EFS belső részei, tekintse meg az EFS-sel kapcsolatos közelgő június/júliusi, az NT Magazine "NT Internals" oszlopában Windows sorozatomat. A cikkben azt írjuk le, hogy pontosan hol vannak tárolva a FEK-k (fájltitkosítási kulcsok) és a felhasználói EFS-kulcsok, hogyan történik a titkosítási folyamat az NTFS, az EFS-illesztőprogram és az LSASRV (a Helyi biztonsági szervezet alrendszerkiszolgálója), és természetesen a visszafejtés működése.

Töltse le az EFSDumpot a teljes forráskódgal a http://www.sysinternals.com/misc.htm.

LISTDLLS A COMPAQ ALPHA-HEZ

Az Alfa számára a belső rendszereknél elérhető segédprogramok száma folyamatosan növekszik. A legújabb kiegészítés a ListDLLs parancssori segédprogram, amely lehetővé teszi a folyamatok futtatásához szükséges DLL-információk megtekintését. A Saját HandleEx eszköz lehetővé teszi ezen információk, valamint a folyamatok által megnyitott leírók (fájlok, folyamatok, szálak, szinkronizálási objektumok) információinak, de a HandleEx egy grafikus felhasználói felületi eszköz, ezért nem mindig kényelmes (például nem futtatható egy kötegfájlban).

Kíváncsi a tipikus Systems Internals segédprogram x86-os verziójának és annak megfelelő Alfa verziójának a letöltéseinek arányával kapcsolatban? Ez körülbelül 20:1-es, amely szorosan nyomon követi a telepített Alpha NT felhasználói bázis iparági becsléseit, mivel ez a teljes NT-piac 5%-a.

A ListDLL-eket és más Alfa-portokat, köztük a HandleEx-et a http://www.sysinternals.com/alpha.htm.

"A RENDSZERINDÍTÁSI FOLYAMATON BELÜL, 2. RÉSZ"

A Windows NT Magazine saját januári "NT Internals" oszlopa mostantól online is elérhető az Windows NT Magazine webhelyén. A hozzá, valamint az 1. rész és a régebbi "NT Internals" (NT belsők) oszlopokra mutató hivatkozást a Systems Internals (Rendszerek belső rendszerei) oldalon, a Publications (Kiadványok) oldalon találja: http://www.sysinternals.com/publ.htm.

ÁPRILISI WINDOWS NT MAGAZINE-CIKKEM

Mindenképpen nézze meg az NT Magazine áprilisi számában Windows "Linux and the Enterprise" (Linux és a nagyvállalat) cikkemet. Több jelentős problémát fedek fel a Linux 2.2 kernel- és hálózatikiszolgáló-alkalmazásokkal ("vállalati" alkalmazások) kapcsolatban, amelyek végső soron megakadályozzák, hogy a Linux kernelnek ez a verziója fej-fej mellett versengésbe ható nt és más UNIX-változatokkal a teljesítmény tekintetében.

NINCS KREDIT, HA AZ ESEDÉKES

Egy kapcsolódó megjegyzésben talán hallott már a nemrég megjelent D.H. Brownról (egy elemző cégről), amely a Linux vállalati operációs rendszerként való képességére volt képes. Kiderül, hogy a jelentés szerzője nagy mértékben "kölcsönzött" egy saját e-mailtől, amelyről még januárban nyilvánosan közzétették a Usenet newsgroup Linux-kernelen. Ha hozzáfér a jelentéshez, és elolvassa a Linux és a többprocesszoros rendszerekről szóló oldalakat (a jelentés nem érhető el nyilvánosan – nagy összegért meg kell vásárolnia), majd elolvashatja a Deja Newsnál található e-mailjeimet, közvetlen párhuzamosság fog látni, kisebb részletekre leolvasva.

NOT-SO-NEW STUFF

A hírlevelek ezen szakaszát arra használom, hogy a Systems Internals webhely legutóbbi módosításait hozzam el, amelyekről Ön esetleg nem tud, és/vagy hogy további információkat adjak a segédprogramról, mint ami a webhelyen elérhető. Néhány héttel ezelőtt például kiadták a Filemon v4.1-et. A Filemon ezen verziója képes az NT/2K-n végzett nevestűdő és Windows monitorozására. Az ehhez szükséges kód fejlesztése viszonylag kicsi volt, mivel a Named Pipes és a Mailslots fájlrendszer-illesztőprogramként van megvalósítva. A fárasztó rész a privát IOCTL-ek (I/O-vezérlési parancsok) kiderítése volt, amelyek a speciális fájlrendszerek által támogatottak, hogy a Filemon meg tudja őket mutatni. A Filemon (amely az NT/2K és Windows 9x Windows működik) a következő ről tölthető le:http://www.sysinternals.com/filemon.htm.

Ha szeretne többet megtudni a Filemon belső működéséről, tekintse meg a februári Windows NT Magazine "NT Internals" oszlopát, amelynek címe "Inside NT Utilities". A cikk a Filemon, a Regmon, az NTFSDOS, a NewSID és a HandleEx használatát ismerteti, és röviden ismerteti azok működését.

BELSŐ HÍREK

WINDOWS 2000 ILLESZTŐPROGRAM-ELLENŐRZŐ

Windows 2000 Beta 3 egy rendkívül hatékony eszközillesztő-fejlesztési segítséget vezet be Driver Verifier néven. Ez az eszköz a kernel kódját használva átveszi az irányítást az illesztő felett, és úgy gyakorolhatja azt, hogy betartsa a kernel módú szabályokat olyan módon, amely korábban nem volt lehetséges. A hibás eszközillesztők messze a legjelentősebb mértékben járulnak hozzá sokak körében arról, hogy az NT egy instabil operációs rendszer, és ennek az eszköznek az a célja, hogy javítsa a jó hírnevét azáltal, hogy segíti a illesztőprogram-írókat a hibák megkeresésében a felhasználók előtt.

Az apró problémák több típusa is okozhatja a alkalmi illesztőprogram-tesztelést (a leggyakoribb tesztelési típust szigorú piacra kerüléskor), és akár súlyos terhelési teszteken keresztül is eleshet. Az illesztővel kapcsolatos gyakori probléma egyik típusa, hogy az illesztő "emelt szintű IRQL" (magas megszakítási prioritású) lapozási memóriához fér hozzá. Ha a memória, amelyhez az illesztő hozzáfér, fizikailag jelen van a hozzáféréskor (nem lapozták ki a lapozófájlhoz), akkor az érvénytelen hozzáférés észrevétlenül marad. Engedjen el egy olyan illesztőt, amely megsérti ezt a szabályt a felhasználók világában, és hogy az megjelenik, ami kék képernyős összeomlást eredményez.

Egy másik gyakori illesztőprogramozási hibatípus, ha egy fejlesztő megírja a kódot azzal a feltételezéssel, hogy a lapozható és/vagy nem lapozható memória mindig elérhető lesz, azaz nem ellenőrzik a visszaadott értékeket a foglalások kiosztásakor. Ha a készlet elfogy, és az illesztő NULL puffercímet kap, az illesztő merrily dereferences a rendszert egy kék képernyőre. Bár a készlet kimerítése ritka eset, nem érdemes kék képernyőt adni a rendszergazdának. A kapcsolódó memóriahibák olyan puffertúlcsordulások vagy -alulfuttatások, amelyekben az illesztő a lefoglalt pufferen kívül olvas vagy ír.

A Driver Verifier az IRQL-problémákat úgy javítja ki, hogy az illesztőprogramban (például , ) az irQL-eket manipuláló összes függvény hívását lecseréli a megfelelő ellenőrző kernelfunkcióval ( , ) az illesztőprogram KeRaiseIrqlKeAcquireSpinLockVerifierKeRaiseIrqlVerifierKeAcquireSpinLock betöltésekor. Amikor az IRQL-t magasabbra emelik, az ellenőrző kód egy belső Memóriakezelő függvényt () hív meg, hogy minden lapozóadatot a fizikai DISPATCH_LEVELMmTrimAllPageableSystemMemory() memóriából kényszerítsen ki. Így amikor egy illesztő megszakítja az IRQL-szabályt, amely nem fér hozzá a lapozható adatokhoz vagy kódhoz a vagy magasabb szintről, a Memóriakezelő észleli a nem jelen oldal elérésére tett kísérletet, és kék képernyőt ad DISPATCH_LEVEL vissza. Ez lehetővé teszi, hogy a fejlesztő gyorsan elkapja az ilyen hibákat, mielőtt az illesztő kijönne az ajtóból, mivel hibakeresést tud végezni az összeomláson, és láthatja, ahogy az illesztő a hibasoron ül.

A Driver Verifier úgy teszteli a memóriahasználatot, hogy javítja az ellenőrizni szükséges illesztőprogram importálási tábláját, hogy az illesztőprogram a szabványos kernelverziók helyett az ellenőrző memóriafunkciókat hívja meg. A hívását például a hívása váltja fel ExAllocatePool a VerifierAllocatePool hívásával. A Verifier két módszerrel segít a fejlesztőknek a memóriahibák gyors keresésében. Az első az, hogy egy speciális memóriakészletet használ, ahol egy védőlap (az őrlap érvénytelen oldal) közvetlenül a puffer vége előtt van elhelyezve. Emellett a lapnak azt a részét, amelyben a puffer előtt található puffer le van osztva, aláírással lesz feltöltve. A rendszer azonnal észleli a puffer végén található oldal túlcsordulását, mivel azok érvénytelen oldalhibákat eredményeznek a védőoldalon. A hitelesítő olyan alulfuttatásokat észlel, amelyek egy puffert megelőzően módosítják az adatokat, amikor az illesztő felszabadítja a memóriát, mivel az aláírás módosult.

Az olyan illesztőprogramokat, amelyek mindig nem üres készletet várnak, a Verifier "memóriahiba-injektálással" fogja megakaszteni az összeomlásokat. A Verifier konfigurálható úgy, hogy véletlenszerűen hibásan adja vissza az illesztő készletfoglalását.

A Driver Verifier néhány egyéb hibatípust is ellenőriz, például az IRP (I/O-kéréscsomagok) konzisztenciáját, valamint a rendszer- és illesztőprogram-kódlapok írás nélküli védelmét.

Ha Ön eszközillesztő-fejlesztő, akkor a Verifierrel való teszteléssel saját magát, a vállalatát és az NT-közösséget fogja előnyben kérni. Vegye figyelembe, hogy a Win2K-val kompatibilis NT 4.0-illesztőprogramokat is tesztelje, amint hozzáfér a Driver Verifierhez (a legtöbb fejlesztő az MSDN Win2K Beta 3-as csomaggal áprilisának vagy májusának végén lesz elérhető).

Az illesztőprogram-ellenőrzőről a következő e-mailben talál további információt: https://docs.microsoft.com/windows-hardware/drivers/devtest/driver-verifier

Y2K TESZTELÉS BOOT.INI

Ha gyakran ellenőrzi a Belső rendszerek webhelyet, valószínűleg már ismeri a Win2K új, nem dokumentált BOOT.INI /YEAR kapcsolót. A webhelyen nem említettem, hogy a kapcsolót az NT 4.0 Service Pack 4 is támogatja. Ez a kapcsoló lehetővé teszi az NT és az NT-rendszerek összes szoftverének hamisítását úgy, hogy azt gondolja, hogy ez egy másik év. A /YEAR=2001 például azt tenné, hogy a rendszer 2001-et gondolja 1999 helyett. Így a kapcsoló ideális az Y2K-problémák teszteléséhez bármilyen szoftverszinten, és annak előnye, hogy a BIOS óra manuális alaphelyzetbe állítása helyett (például az óra applet használatával) használja, hogy a módosítás ideiglenes és csak akkor aktív, ha olyan telepítést indít el, amely a kapcsolót az BOOT.INI-sorban tartalmazza. Így egyszerűen létrehozhat egy speciális Y2K telepítést, ha egy meglévő rendszerindító sort vesz a BOOT.INI, megkettinti, majd hozzáadja a /YEAR kapcsolót.

MI A KÖVETKEZŐ?

A következő hírlevelet néhány hét múlva várjuk. A következő alkalommal a queued Spinlocks(Várakozási sorba ékelt spinlockok) új típusú, Windows 2000-ben a globális spinlockok 2000-ben használt új típusa lesz a belső használatra. A 2000-es Windows a következő globális spinlockok léteznek:

  • KiDispatcherLock: az ütemező adatbázis-zárolása
  • KiContext-SwapLock: a felcserélés felcserélési zárolása
  • MmPfnLock: a fizikai lapkeret adatbázis-zárolása
  • MmSystemSpaceLock: a kernelmódú címtér zárolása
  • CcMasterSpinLock: a gyorsítótár-kezelő globális forgótára
  • CcVacbSpinLock: a Gyorsítótár-kezelő mapping-array zárolása

Ahelyett, hogy normál kernel spinlockokat (KeAcquireSpinLock, KeReleaseSpinLock) használna ezekhez a globális zárolásokhoz, ahogyan azt az NT 4.0 tette, a Windows 2000 kernel várólistán lévő spinlockokat használ (KeAcquireQueuedSpinLock, KeReleaseQueuedSpinLock). Ezek a zárolások érdekes tulajdonságokkal rendelkeznek, amelyek minimálisra csökkentik az SP-k buszon végzett tevékenységét. A következő alkalommal megmondjuk, hogyan vannak megvalósítva a várólistán lévő spinlockok.

Hamarosan érkezik a Systems Internalsnél a Tokenmon, amely egy újabb monitorozási eszköz. A Tokenmon részletes információkat nyújt a rendszer jogkivonatokkal kapcsolatos tevékenységével kapcsolatban, beleértve a bejelentkezéseket, a kijelentkezéseket, a jogosultságok használatát és a megszemélyesítést.


Köszönjük, hogy elolvasta a Belső rendszerek hírlevelet.

Published Wednesday, April 14, 1999 19:16 PM by ottoh

[Hírlevelek archívuma ^][Volume 1, Number 2 ]

[Hírlevelek archívuma ^][Volume 1, Number 2 ]

A rendszerek belső hírlevele, 1. kötet, 1. szám

http://www.sysinternals.com