[Archiv bulletinů ^][< Svazek 1, číslo 4][Svazek 2, číslo 1 >]

The Systems Internals Newsletter volume 1, Number 5

http://www.sysinternals.com
Copyright 1999 Mark Russinovich


12. října 1999 – V tomto problému:

  1. CO JE NOVÉHO V INTERNÍCH SYSTÉMECH

    • NTFS pro Windows 98/NTFSDOS Professional
    • DebugView v3.21
    • Filemon a Regmon v4.21
    • Diskmon v1.1
    • Interní systémy ve společnosti www.microsoft.com
    • Říjen "NT Internals"
    • Ne tak nové věci
  2. INTERNÍ ZPRÁVY

    • Vydáno win2K RC2 DDK
    • Nová rozhraní API jádra Win2K RC
    • Vývoj softwaru (ročník '99 East)
    • Použití DiskuEdit
  3. CO SE CHYSTÁ

    • Explozi rozhraní API Win2K

SPONZOR: WINTERNALS SOFTWARE

Bulletin Internals Systems je sponzorován společností Winternals Software na webu na adrese http://www.winternals.com. Winternals Software je přední vývojář a poskytovatel pokročilých systémů nástrojů pro systém Windows NT/2K. Produkty Winternals Software zahrnují FAT32 pro systém Windows NT 4.0, ERD Commander (funkce spouštěcího disku pro systém Windows NT) a NTRecover.

Winternals Software Remote Recover umožňuje přístup k diskům nebootovatelného počítače prostřednictvím protokolu TCP/IP odkudkoli ve vašem podniku. Ušetřete čas a podporu dolarů tím, že vzdáleně opravíte ovladače, systém souborů a problémy s konfigurací, které udržují systémy NT nebo Win9x off-line. Můžete dokonce provádět vzdálené operace chkdsk nebo dělení pomocí vzdáleného obnovení, což z něj dělá univerzální nástroj pro zotavení po havárii. Stáhněte si bezplatnou zkušební verzi jen pro čtení na adrese http://www.sysinternals.com/rrecover.htma kupte si verzi pro čtení a zápis na adrese http://www.winternals.com.

Dobrý den,

Vítejte v bulletinu Systems Internals. Bulletin má aktuálně 10 000 odběratelů.

Zdá se, že vydání systému Windows 2000 (Win2K) se řídí vzorem, který se blíží a pak se odsune zpět. Nejnovější zprávy jsou, že bude k dispozici v únoru. A jediné informace o datu expedice Win2K jsou v rumorech, protože Microsoft ani neříká OEM ani partnerům, kdy se bude dodávat. No, oni jsou: "To bude expedovat, až bude připraven" (nebudu vynucovat datované tvrzení o prodeji vína na vás zde).

Dráždící věc o Microsoftu je, že tisk, který generují o svých produktech, se vždy zdá, že jsou na kluzišti dopravy i v případě, že produkty jsou páry. Posledním příkladem je Millennium, následník Windows 98. Microsoft před příliš dlouhou dobou udělal velký tlak v tisku, jako by to byl hotový produkt, připravený převést všechna vaše domácí spotřebiče na inteligentní zařízení. Ironie je, že články krátce později ukázaly, že Microsoft ještě ani plně nedefinoval produkt, a jeho pravděpodobně bude rok nebo více předtím, než ho uvidíme na regálech obchodu.

Tento vzor není nový a nejsem první, co o tom píšu. Ale to mě nezabrání spekulovat o tom, kolik z pilových pil je pečlivě orchestrovaný plán a kolik je výsledkem celkového nedostatku softwarových inženýrských objektů. Pokud si koupíte do bývalého úhlu, jako konspirační teoristé dělají, Microsoft brilantně usměrní konkurenci tím, že znesměrní zákazníky s tímto neuvěřitelným produktem, který, pokud počká jen o něco déle, bude jejich čekání užitečné a zneužít jakoukoli potřebu obrátit se na produkt jiné společnosti než Microsoft. Druhý úhel říká, že Microsoft se nikdy nenaučí proces vývoje softwaru a neustále podceňuje technické úsilí a přehodnocuje kvalitu beta kódu.

Sedím na plotu, na kterou teorii připisuju. Vlastně si myslím, že vzor je způsoben trochu obojí. Myslím, že microsoftu pomohl jednat jako Active Directory už skoro dva roky. Určitě existují zákazníci, kteří by se už dávno obrátili na Novell Directory Services, pokud by věděli předem, jak dlouho budou muset čekat na Win2K. Microsoft na druhou stranu dostal opakované černé oči v tisku z slibného dodání produktu a pak zpozdit. Myslím, že vedení Microsoftu prostě nerozumí tomu, jak těžké je reprodukovat, izolovat a opravit posledních 5 % chyb.

Když mluvíme o postupech microsoftu pro vývoj, jejich předběžné pojmenování schématu je jedním z nejvíce baffling, které jsem viděl. Jejich beta verze jsou opravdu alfa a jejich kandidáti na vydání jsou ve skutečnosti beta verze. A dokonce i použití těchto definic je roztažení: Microsoft nemá žádný problém s vytrháváním funkcí ze svého softwaru, když jde z jednoho Release Candidate na další nebo dokonce přidává nové. Udělali to s NT 4.0 a dělají to s Win2K. Tento postup určitě nezrychluje cyklus vydávání.

Takže bude Win2K expedovat v únoru? Myslím, že na konci tunelu vidím světlo. Koneckonců, existuje pouze několik nových rozhraní API ve verzi RC2...

Jako následný postup k poslednímu bulletinu, kde jsem mluvil o zkratkách v Microsoftu, čtenář George Janczuk našel další příklad. V části s názvem "Rozšíření na mainframe Transaction-Processing World", článek odkazuje na http://msdn.microsoft.com/library/backgrnd/html/msdn_windnapps.htm CISC - Complex Instruction Set Computing. Je zřejmé, že každý, kdo zná sálové aplikace, že zamýšlená zkratka je CICS - Customer Information Control System. Obrácená sekvence písmen a vy jste v úplně jiné technologické oblasti.

Jako obvykle prosím předejte bulletin přátelům, které si myslíte, že by to mohlo být zajímavé.

Děkujeme!

-Označit

CO JE NOVÉHO V INTERNÍCH SYSTÉMECH

NTFS PRO WINDOWS 98/NTFSDOS PROFESSIONAL

Nakonec jsme to udělali. Od doby, kdy bryce a já vydali NTFSDOS 1.0 zpět na jaře 1996 jsme hledali svatou grálu kompatibility systému souborů Windows: přístup pro čtení a zápis pro NTFS z Windows 9x a DOS. Před dlouhou dobou jsme zjistili, že zpětné analýzy formátu NTFS a zápis ovladače pro tento složitý systém souborů deníku by byla obtížná a riziková nabídka. I když jeden přesně určuje všechny nuance formátu, aktualizace formátu, jako je ntfs systému Win2K v5.0, vyžaduje zcela nové úsilí o zpětnou přípravu a vývoj. Ověření správnosti ovladače systému souborů pro formát, který je komplikovaný, protože ntfs je složitá nabídka.

Tak jsme podváděli.

Systém NTFS pro Windows 98 poskytuje úplný přístup pro čtení a zápis k jednotkám NTFS z Windows 95 nebo Windows 98 a NTFSDOS Professional poskytuje úplný přístup pro čtení a zápis systému souborů NTFS z systému DOS. Systém souborů NTFS pro Systém Windows 98 ani NTFSDOS Professional nemá žádné znalosti formátu systému souborů NTFS. Místo toho spoléhají na ovladač NTFS z instalace systém Windows NT nebo Windows 2000, aby tyto znalosti implementovaly. Oba nástroje používají stejný základ kódu, který slouží jako obálka prostředí pro ovladač systému souborů NTFS. SYSTÉM SOUBORŮ NTFS pro Windows 98 poskytuje rozhraní pro rozhraní API systému souborů Windows 9x nad systémem souborů NTFS a diskové služby systému Windows 9x pod ntfs. Rozhraní NTFS pro Windows 98 prezentuje ntfs vypadá jako nativní prostředí systému souborů NTFS systém Windows NT/2K, které obsahuje protokoly IRPs, správce vstupně-výstupních operací, Správce mezipaměti, disková zařízení ve stylu NT/2K a další subsystémy NT/2K, se kterými systém souborů NTFS komunikuje.

NTFSDOS Professional funguje stejně jako NTFS pro Windows 98, s tím rozdílem, že rozhraní NTFS na SLUŽBY DOS výše a BIOS Přerušení 13 diskových služeb níže. Abychom vám pomohli vytvořit prostředí podobné NT/2K, spoléháme na mnoho funkcí v rámci NTOSKRNL, soubor jádra NT/2K. Oba nástroje načítají NTOSKRNL ve spojení se systémem souborů NTFS, aby systém NTFS mohl přímo používat nativní služby jádra.

Měli jsme tolik zábavy při sestavování prostředí NTFS, že jsme šli o krok dál: udělali jsme to samé s nástrojem NT boot-time chkdsk, Autochk. NtfsDOS Professional a NTFS pro Windows 98 jsou součástí nástroje NTFS chkdsk s názvem NTFSCHK. NTFSCHK funguje na stejném objektu zabezpečení jako obálka systému souborů NTFS, kde vytvoří prostředí podobné protokolu NT pro program Autochk, aby autochk běžel v systému Windows 95/98 a DOS. Výsledkem tohoto triku je kompletní podpora čtení a zápisu systému SOUBORŮ NTFS pro systém Windows 95/98 a pro SYSTÉM DOS.

Zdarma si můžete stáhnout verzi NTFS jen pro čtení pro Windows 98 http://www.sysinternals.com/ntfs98.htm a bezplatnou verzi NTFSDOS Professional jen pro čtení na adrese http://www.sysinternalscom/ntfspro.htm. Úplné verze pro čtení a zápis obou nástrojů si můžete zakoupit ve společnosti Winternals Software, http://www.winternals.com.

DEBUGVIEW V3.21

DebugView je monitor výstupu ladění, který zachycuje výstup ladění jádra i Win32 v systémech Windows 95, Windows 98, NT 4.0 a Windows 2000. Má pokročilé možnosti filtrování, zvýrazňování a protokolování a může dokonce zaznamenávat ladicí výstup ze systému v síti. Nejnovější vydaná verze 3.21 představuje možnost monitorovat 16bitový výstup OutputDebugString v systémech Windows 95 a Windows 98.

DebugView v3.21 si můžete stáhnout na adrese http://www.sysinternals.com/dbgview.htm.

FILEMON A REGMON V4.21

Filemon a Regmon jsou nástroje pro sledování souborů a registru pro Windows 95, 98, NT 4.0 a Win2K. Stále se vyvíjejí s novými funkcemi použitelnosti a s verzí 4.21 (Filemon a Regmon mají synchronizovaná čísla verzí), zavádí pokročilejší filtrování se seznamy nedávných filtrů, možnost definovat filtr zvýraznění (s vlastními barvami i), přizpůsobitelné písmo, podporu schránky a další klávesové zkratky kompatibilní s CUI. Zdrojový kód ovladače byl také přepracován a zahrnuje robustnější ověřování parametrů ve funkcích rozhraní grafického uživatelského rozhraní.

Stáhnout Filemon v4.21 at http://www.sysinternals.com/filemon.htm a Regmon v4.21 at http://www.sysinternals.com/regmon.htm.

DISKMON V1.1

Diskmon je nástroj, který monitoruje a zobrazuje logickou a fyzickou aktivitu disku. Verze 1.1 aktualizuje Diskmon pro práci se systémem Windows 2000 a zavádí nová vylepšení použitelnosti. Diskmon teď navíc interpretuje velký počet kódů řízení vstupně-výstupních operací disku a velkokapacitního úložiště a překládá jejich šestnáctkové kódy do textové reprezentace v okně výstupu Diskmon.

Diskmon v1.1 nejen funguje jako diskový monitor, ale můžete ho použít také jako softwarové světlo disku. Když ji nastavíte v režimu osvětlení disku, Diskmon se minimalizuje do systémového panelu jako světlo, které je zelené, pokud je přístup ke čtení disku a červený, pokud je přístup k zápisu na disk.

Stáhnout Diskmon v1.1 na adrese http://www.sysinternals.com/diskmon.htm.

INTERNÍ SYSTÉMY AT WWW.MICROSOFT.COM

Vzhledem k historii systémů Internals (dříve NT Internals), je to velmi lichotné, že Společnost Microsoft odkazuje sysinternals.com jako prostředek pro své zákazníky. Existuje rostoucí počet článků znalostní báze Microsoft Knowledge Base, které odkazují na nástroje Systems Internals. Tady je nejnovější:

  • Q183060 INFORMACE: Průvodce odstraňováním potíží pro 80004005 a další chybové zprávy http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP
    Tento článek popisuje použití Filemon ke kontrole příčiny chyb přístupu k datům v OLE DB, technologie ActiveX datových objektů a vzdálené datové služby.

  • Q196453 – Řešení potíží s chybami spuštění NTVDM a WOW http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP
    Tento článek také odkazuje na Filemon jako nástroj pro určení chybějících souborů, které způsobují chyby při spuštění ntVDM (prostředí kompatibility Win16/DOS v NT).

  • Q216368 – PRB: Narušení přístupu během instalace aplikace při použití souboru http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    HandleEx a DLLView jsou doporučené nástroje pro určení příčiny chyb při provádění instalačních programů vygenerovaných Průvodce instalací jazyka Visual Basic a Průvodce nasazením.

  • Q232830 – POSTUPY: Určení vlastnictví popisovače souborů http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    HandleEx znovu získá referenční seznam v tomto článku, který popisuje, jaký proces má soubor nebo adresář otevřený.

ŘÍJEN "NT INTERNALS"

Můj "NT Internals" sloupec v říjnovém vydání systém Windows NT Magazine je "Inside Win2K Reliability Enhancements, Část 3". Tato třetí část třídílné série popisuje dvě výkonné funkce Win2K, které vývojářům a správcům pomáhají určit ovladače chyb: paměť jádra chráněná zápisem a ověřitel ovladačů.

Ruští čtenáři si teď mohou přečíst mé články v jejich rodilém jazyce. Přejděte na ruskou edici systém Windows NT Magazine a http://www.osp.ru/win2000/ podívejte se na první přeložený NT Internals sloupec, Inside the Boot Process (http://www.osp.ru/win2000/1999/10/59.htm). Díky Ivan Rouzanov za to, že o tom řeknu.

Od začátku srpna jsou on-line verze článků systém Windows NT Magazine přístupné pouze pro předplatitele a články se publikují online s každým novým problémem. Pokud jste se ještě nepřihlásili k odběru, projděte si prosím odkaz na http://www.sysinternals.com/publ.htm předplatné a získejte slevu za předplatné Interní systémy.

NE TAK NOVÉ VĚCI

WinObj je výkonný nástroj pro zkoumání oboru názvů objektů systém Windows NT/2K. Obor názvů objektu je jedním ze tří oborů názvů v NT/2K: obor názvů objektu, obor názvů registru a obor názvů systému souborů. K oborům názvů registru a systému souborů se dostanete prostřednictvím objektů v oboru názvů Object. Například když program Win32 otevře klíč HKEY_LOCAL_MACHINE\Software\Microsoft registru, knihovna ADVAPI32.DLL transformuje název před \Registry\Machine\Software\Microsoft voláním služby NtCreateKeyjádra . Pokud se podíváte na kořen oboru názvů object v WinObj, uvidíte objekt typu "klíč" s názvem Registry. Název registru odpovídá první komponentě názvu klíče, takže správce objektů NT/2K předá zbytek názvu \Machine\Software\Microsoftsubsystému, který definuje objekt klíče. Subsystém jádra Configuration Manageru udržuje objekty registru a klíče, takže analyzuje zbytek názvu a vyhledá požadovaný klíč.

Pomocí WinObj můžete prozkoumat obor názvů objektů a zobrazit nebo nastavit vlastnosti zabezpečení objektů. Stáhnout Winobj na adrese http://www.sysinternals.com/winobj.htm. Diskutuji o oboru názvů Správce objektů a WinObj v mém říjnu 1997 NT Internals sloupec "Inside the Object Manager". Postupujte podle odkazu na on-line verzi sloupce na adrese http://www.sysinternals.com/publ.htm.

INTERNÍ ZPRÁVY

VYDÁNO WIN2K RC2 DDK

Nyní si můžete stáhnout verzi Win2K RC2 sady Microsoft Device Driver Development Kit (DDK) http://www.microsoft.com/ddk/ddkRC2.htm. Sadu si můžete zdarma stáhnout nebo si projít dokumentaci online.

NOVÉ ROZHRANÍ API JÁDRA WIN2K RC2

Věci se mají stabilizovat v nejnovějším jádru Win2K. Ve verzi RC3 existují pouze čtyři nová exportovaná rozhraní API jádra, na rozdíl od přibližně desítky, která se objevila (a další půl tuctu, která zmizela) z beta verze 3 na RC1. Některé z nových funkcí jsou poněkud zajímavé, takže jsem se rozhodl, že je zdokumentovat pro vás. První je MmGetSystemRoutineAddress, a i když je bezdokumentovaný jeho prototyp je součástí souboru ntddk.h hlavičky RC2 DDK:

NTKERNELAPI
PVOID
MmGetSystemRoutineAddress (
    IN PUNICODE_STRING SystemRoutineName
    );

Jeho použití je tak jednoduché, jak vypadá. Předejte název funkce, která se nachází buď v NTOSKRNL.EXE, nebo HAL.DLL a vrátíte její adresu vstupního bodu. Tato funkce je ve skutečnosti nepoužitá v první verzi Win2K, ale může se stát velmi užitečnou po cestě a je to funkce, kterou microsoft měl zahrnout do první verze NT (3.1). Podobně jako GetProcAddress v uživatelském prostoru pro aplikace Win32 umožňuje tato funkce dynamicky zjistit dostupnost rozhraní API. Pokud Microsoft přidá nová rozhraní API do aktualizací Service Pack Win2K (a jsem si jistý, že budou) ovladače mohou být zapsány tak, aby využívaly výhod rozhraní API, ale také neúspěšně na starších verzích Win2K nebo spustit v režimu, kde nepoužívají rozhraní API. Klíčem k ovladači, který to dokáže, je možnost zkontrolovat přítomnost rozhraní API po načtení. Bez této funkce musí ovladač staticky propojit s funkcemi, které používá, a pokud tyto funkce nejsou k dispozici při načtení ovladače, zavaděč jádra hlásí uživateli ošklivou chybu a ovladač nenačte.

Druhé nové rozhraní API je MmGetPhysicalMemoryPages. Opět je jeho prototyp v RC2 ntddk.h, ale není zdokumentovaný. Jeho prototyp je:

NTKERNELAPI
PPHYSICAL_MEMORY_RANGE
MmGetPhysicalMemoryRanges (
    VOID
    );

Kde PHYSICAL_MEMORY_RANGE je:

typedef struct _PHYSICAL_MEMORY_RANGE {
    PHYSICAL_ADDRESS BaseAddress;
    LARGE_INTEGER NumberOfBytes;
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;

Tato funkce vrátí matici PHYSICAL_MEMORY_RANGE položek s koncem matice označenou položkou, která má hodnotu 0 pro obě BaseAddress a NumberOfBytes. Je to MmGetSystemRoutineAddressdocela jednoduché rozhraní API. Vrátí se vám popis veškeré fyzické paměti, o které Win2K ví. Win2K podporuje přidávání a odebírání paměti za běhu pomocí MmAddPhysicalMemory rozhraní API a MmRemovePhysicalMemory rozhraní API. To motivuje důvod existence rozhraní API, které umožňuje dotazovat rozsahy paměti. MmAddPhysicalMemory byla přidána ve verzi RC1 a MmRemovePhysicalMemory ve verzi RC2. Obě tyto funkce jsou také prototypovány v ntddk.h.

Jaká jsou další nová rozhraní API RC2? PoShutdownBugCheck a RtlInvertRangeList. PoShutdownBugCheck umožňuje systém chybově ukončit a provést akci související s napájením, jako je pozastavení. Jádro RC2 používá na několika místech. Rozsahy jsou obecné počáteční a koncové specifikace, které jsou uživatelsky definované a podporované několika rozhraními API jádra pro správu, řazení a iteraci. Arbitery prostředků Plug-and-Play win2K je používají ke sledování a uspořádání požadavků na hardwarové prostředky. I když rozhraní API seznamu rozsahů nejsou zdokumentovaná, všechny jejich prototypy a definice struktury jsou součástí ntddk.h, takže pravděpodobně můžete rozhraní API použít ke správě vlastních počátečních dat orientovaných na začátek.

Sledujte další zábavu díky nezdokumentovaným rozhraním API v dalších bulletinech.

VÝVOJ SOFTWARU 99 – VÝCHOD

Edici Vývoje softwaru z východního pobřeží 1999 probíhá ve Washingtonu D.C. od 8. listopadu 12. Poslední den prezentujem tři přednášky: Co je nového v systému Windows 2000 Pro vývojáře, uvnitř modré obrazovky systém Windows NT/2000 a Uvnitř sítě systém Windows NT/2000. Kromě toho Dave Solomon, autor Inside systém Windows NT 2. vydání a soused (žije od mě pouhých 20 minut od mě, ze všech míst, Danbury, CT) a já hostuji systém Windows NT/2K vnitřní stůl. Budeme společně odpovídat na vaše nejtužší otázky týkající se interních systém Windows NT/2K. Pozdravte a zmiňte bulletin a dám vám zdarma Systems Internals tričko!

Navštivte web pro vývoj softwaru na adrese . http://www.sdexpo.com.

POUŽITÍ DISKEDIT

Možná ho neznáte, ale existuje nástroj editoru disků pro systém Windows NT ve stylu ctihodné funkce Norton Disk Edit for DOS. A co víc, nástroj rozumí FAT a NTFS a je zdarma. Společnost Microsoft zřejmě odeslala DiskEdit omylem, nástroj, který musí být interním nástrojem ladění pro týmy jejich systémů souborů, na systém Windows NT 4.0 Service Pack 4 CD. DiskEdit má zvláštní rozhraní, které by trvalo malou příručku k dokumentu, ale já vám umožní začít s jednoduchým návodem. Zaměřím se na použití DiskEdit k odkrývání formátu systému souborů NTFS, protože DiskEdit je jediný veřejně dostupný nástroj, který vím, že rozumí NTFS.

Nejprve musíte získat DiskEdit z disku CD-ROM service Pack 4 (SP4). Jednoduše ho zkopírujte z adresáře \i386 na pevný disk. Pokud chcete použít DiskEdit v systému Win2K, budete pro něj muset vytvořit privátní adresář a zkopírovat následující knihovny DLL z adresáře SP4 winnt\system32 (nebo SP4 CD) do stejného adresáře jako DiskEdit: IFSUTIL.DLL, ULIB.DLL, UNTFS.DLL a UFAT.DLL. Teď můžete spustit DiskEdit.

Pro účely tohoto návodu vytvořte adresář s názvem TEMP v kořenovém adresáři jednotky NTFS a vytvořte v tomto adresáři soubor s názvem OUT.TXT zadáním následujícího příkazu v okně příkazového řádku s tempem jako aktuálním adresářem: echo hello > out.txt Vyberte jednotku s novým souborem OUT.TXT v DiskEditu výběrem možnosti Soubor|Otevřete položku nabídky a do pole Název svazku výsledného dialogového okna zadejte písmeno jednotky. Ujistěte se, že jste zahrnuli dvojtečku, například "d:". Prakticky všechny funkce DiskEdit vyžadují, abyste otevřeli jednotku.

Soubor OUT.TXT vyhledáme tak, že začneme v kořenovém adresáři jednotky NTFS. Vyberte položku nabídky Číst|Záznam souboru NTFS k otevření dialogového okna, které umožňuje zobrazit všechny položky záznamu MFT pouze zadáním jeho čísla. První 16 záznamů MFT záznamů každé jednotky NTFS jsou vyhrazeny a odpovídají předem definovaným souborům metadat NTFS. Tady jsou přiřazení čísel (všimněte si, že DiskEdit interpretuje veškerý vstup jako šestnáctkové):

        0: $MFT - MFT
        1: $MFTMirr - MFT Mirror (a copy of the first 4 entries of the MFT)
        2: $LogFile - NTFS LogFile
        3: $Volume - volume information file
        4: $AttrDef - the attribute definition file
        5: . - the root directory
        6: $Bitmap - the volume allocation bitmap file
        7: $Boot - the boot sector
        8: $BadClus - the bad cluster database file
        9: $Secure - new to SP4, the security attribute database
        A: $UpCase - the lower-to-upper case mapping file
        B: $Extend - new to Win2K, the directory that contains
                             the reparse, object ID, and quota metadata files
        C-F: Unused as of NTFS v5.0 (Win2K)

Podívejte se na některé z těchto položek MFT. Začnete si všimnout společného motivu: všechny se skládají z atributů, jako $INDEX_ROOTje , $FILE_NAMEa $DATA. Nachází se v atributech, kde jsou uložena data specifická pro soubor. Pokud jsou data atributu malá ntfs, ukládají data v záznamu MFT souboru jako "rezidentní" data a když jsou data velká ntfs, ukládají data externí k záznamu v clusterech na disku jako "nerezidentní" data.

Teď jako číslo souboru zadejte "5" a zobrazí se soubor kořenového adresáře. Podíváme se na soubory a adresáře, které jsou v kořenovém adresáři, zobrazením atributu $INDEX_ALLOCATION adresáře, který je specifický pro adresáře, které zaznamenávají obsah adresáře. Uděláte to tak, že vyberete možnost Číst|Položka nabídky atributu NTFS, která otevře další dialogové okno. DiskEdit je citlivý na malá a velká písmena, takže zadejte následující přesně tak, jak jsem ho uvedl:

        Base Frs Number: 5

Základní frs (segment základního záznamu souboru) je jiný název čísla MFT. Zadáním hodnoty 5 určíte, že chcete číst atribut z kořenového adresáře.

        Attribute Type: $INDEX_ALLOCATION

To označuje diskEdit, že chcete číst data obsahu adresáře. Doporučuji použít rozevírací nabídku k výběru atributu, který chcete, protože DiskEdit je velmi výběr o způsobu, jakým je typ atributu zadán.

        Attribute Name: $I30

Pokud zobrazíte $INDEX_ALLOCATION atribut kořenového adresáře, uvidíte, že$I30 "" je uvedený jako jeho název v řádku "Type code, name", takže je to, co zadáte jako název atributu.

Stiskněte TLAČÍTKO OK a zobrazí se šestnáctkový výpis obsahu atributu. Chceme vidět něco srozumitelnějšího, takže vyberte zobrazení|Položka nabídky Vyrovnávací paměť indexu NTFS. Zobrazí se seznam obsahu adresáře. Procházejte výpisem, dokud neuvidíte položku s názvem "TEMP". Pokud ji nevidíte, může být položka umístěna v atributu kořenového $INDEX_ROOT adresáře, typ atributu také přidružený k adresářům a který má vždy hodnotu uloženou v záznamu MFT. Indexování kořenových položek a položek přidělení dohromady tvoří strukturu stromu B+ ukládající všechny položky adresáře. Pokud je nutné atribut zobrazit $INDEX_ROOT , postupujte stejně jako při prohlížení tohoto atributu jako při prohlížení atributu $INDEX_ALLOCATION . Při procházení vyrovnávací paměti indexu můžete narazit na dvojité řádky hvězdičky: tyto označují konec jedné vyrovnávací paměti indexu a začátek další.

Jakmile najdete položku adresáře TEMP, poznamenejte si její odkaz na soubor (FRS). Výběr možnosti Číst|NTFS File Record and enter TEMP's FRS. Teď se díváte na záznam MFT pro adresář TEMP. Chceme najít soubor OUT.TXT, takže se budeme muset podívat na obsah tempa, abychom ho našli. $INDEX_ALLOCATION Zobrazte (nebo$INDEX_ROOT) atribut adresáře TEMP, přepněte na zobrazení dat jako vyrovnávací paměti indexu NTFS a vyhledejte OUT.TXT soubor. Nezapomeňte do dialogového okna pro výběr atributů zadat soubor FRS základního souboru FRS. Pokud jste právě vytvořili temp, bude mít pouze ( $INDEX_ROOT pokud chybně zadáte něco, co budete rádi vidět v prázdných dialogových oknech chyb DiskuEdit).

Když jste našli OUT.TXT a určili, že jeho frS používá funkci Číst|Záznam souboru NTFS, který se má podívat na jeho záznam MFT. Posuňte se dolů, dokud nenajdete atribut $DATA. Teď se díváte na umístění OUT. Data TXT. Vzhledem k tomu, že jsme vytvořili malý soubor, jsou data uložená v záznamu MFT. Pokud se pokusíte zobrazit out. $DATA Atribut TXT pomocí DiskuEdit neuvidíte nic, protože DiskEdit nezobrazuje správně rezidentní data (jedna z mnoha chyb DiskuEdit). Proto zkopírujte largish (> 2KB) textový soubor do \TEMP\ OUT.TXT. Teď můžete zobrazit OUT.TXT data jedním ze dvou způsobů: můžete prozkoumat začátek dat (nebo všechny, pokud jsou jejich souvisle uložené na disku) pomocí funkce Číst|Cluster NTFS a zadání první hodnoty lcn, kterou vidíte v příkazu OUT. Atribut TXT "Extent List" (Seznam rozsahů $DATA ) nebo můžete použít read|Atribut NTFS a jako typ atributu zadejte "$DATA" a jako název atributu nic nezadávejte (stejně jako v něm nic nezadávejte).

Seznamy rozsahů popisují umístění nerezidentních dat atributu. Každý souvislý blok dat o délce až 16 clusterů je popsán jednou položkou seznamu rozsahu. Položka seznamu rozsahů určuje číslo virtuálního clusteru (vcn), číslo logického clusteru (lcn) a délku spuštění. Vcn je cluster v souboru, ve kterém se spouští data popsaná položkou. A Lcn určuje logický cluster, kde jsou data uložená na disku, a runlength je počet bajtů dat atributů v daném umístění (pamatujte, DiskEdit zobrazuje šestnáctkové hodnoty).

Prošla jsem vás dlouhou cestou, jak najít OUT.TXT soubor MFT záznamu tím, že vám ukáže, jak kontrolovat obsah adresáře. Existuje však zkratka: vyberte Crack |Cesta NTFS a zadejte temp\OUT.TXT. Zobrazí se out. SOUBOR FRS txt a můžete použít read|Pokud chcete přejít přímo k souboru NTFS, přejděte k němu.

To mě přivádí na konec mého diskuEdit primeru. Doporučuji vám hrát s tímto nifty nástroj procházením FAT nebo NTFS jednotky. Je velmi nepravděpodobné, že byste někdy našli příležitost použít DiskEdit ke změně dat, aby se disk dostal z jamu, ale pokud vás zajímá formát NTFS na disku (formát FAT je dobře zdokumentovaný), je to ideální nástroj pro zkoumání.

CO SE CHYSTÁ

EXPLOZÍ ROZHRANÍ API WIN2K

Ačkoli existují pouze 4 nové exportované rozhraní API v režimu jádra, která vytvořila svůj debut ve verzi RC2, celkový počet rozhraní API, která Společnost Microsoft zavedla od NT 4.0, jak v jádru, tak v jádru i v jádrových knihovnách DLL Win32, explodovala. Příští měsíc vám přesně povím, kolik nových rozhraní API existuje a kde se objevilo, a bohužel dát lidem, kteří se domnívají, že Win2K je bloudný monstrum některé skvělé munice pro jejich alt.advokaci.linux Usenet rants.


Děkujeme vám za přečtení bulletinu Internals Systems.

Publikováno ve středu, 20. října 1999 199 17:10 od ottoh

[Archiv bulletinů ^][< Svazek 1, číslo 4][Svazek 2, číslo 1 >]