Speciális fájlok ntfs

A Master File Table (MFT) első tizenhat elemét speciális fájlok tárolják. Az NTFS 3.0 csak az első tizenkét elemet használja. Ezek olyan rejtett fájlok, amelyek neve a partíció gyökerében található. A fájlok nem láthatóak, de léteznek. Ezt ellenőrizheti, ha megpróbál létrehozni egy fájlt a partíció gyökerében lévő egyik fenntartott névvel. NTFS meghajtón például nem hozhat létre C: \ $ kötet fájlt.

  • $ MFT (0 tétel) A fő fájltáblázat. Az adat attribútum MFT elemeket tartalmaz, valamint a fel nem használt bitmap attribútumokat.
  • $ MFTMirr (1. elem) Az első négy MFT elem tükrözése (mentése).
  • $ LogFile (2. elem) Olyan kötetnaplófájl, amelyben a kötetstruktúra minden módosítása rögzítésre kerül.
  • $ Térfogat (3. elem) A $ Volume attribútum az egész kötetet jelöli. A menettulajdonságok Win32 elemzi «\\ \ C :.» megnyitja a hangerő fájlt a C: meghajtóra (feltételezve, hogy a C: meghajtó NTFS kötet), $ file tartalmazza a kötet kötet nevét, mennyiségét és információs objektum azonosító attribútumokat.
  • $ AttrDef (4. elem) Attribútum adatok $ Az AttrDef egy sor definíciót tartalmaz.
  • \ (5. elem) A kötet gyökere.
  • $ Bitmap (6 elem) A $ Bitmap adat attribútum a kötetklusterek rasztere.
  • $ Boot (7. elem) A $ Boot első szektora szintén a kötet első szektora. Mivel a boot-folyamat legelején használják (ha a kötet bootolható), akkor a tér nem egységes, és a tárolt adatok nem igazodnak a természetes határokhoz. Az első szektor formátuma a BOOT_BLOCK struktúra segítségével írható le.
  • $ BadClus (elem 8) A fájl adattulajdonsága a sikertelen fürtökről tartalmaz információkat.
  • $ Secure (9-es elem) A $ Secure data attribútum megosztott hozzáférési azonosítókat tartalmaz. A Secure két indexet is tartalmaz.
  • $ UpCase (elem 10) A $ Upcase adat attribútum tartalmazza az összes 65536 Unicode karakter nagybetűs értékét.
  • $ Extend (11. elem) $ Extend egy olyan könyvtár, amely speciális fájlokat tartalmaz az NTFS 3.0 néhány további funkciója által. Speciális fájlok ebben a könyvtárban tárolt van: «$ ObjId» (support objektum azonosító), «$ Kvóta» (támogatási kvótát), «$ Újraelemzési» (adatok újrafeldolgozása pont) és a «$ UsnJrnl» (fájlrendszer folyóirat). A Windows Vista-ból kiindulva van egy "$ RmMetadata" könyvtár (NTFS tranzakciók támogatása).

Bár speciális fájlok valójában a fájlokat, de megnyitni őket a szokásos módon (pl NtOpenFile NtCreateFile vagy funkciók) nem. Még közigazgatási jog az ACL-ben (amely lehetővé teszi az olvasást speciális fájlok), a bejutás lehetetlen, mert számukra Ntfs.sys (NTFS fájlrendszer driver) mindig visszatér a status STATUS_ACCESS_DENIED hibákat. Az Ntfs.sys két változók, amelyek befolyásolják a viselkedését: NtfsProtectSystemFiles és NtfsProtectSystemAttributes. Alapértelmezés szerint mindkét változó értéke TRUE.

Ha NtfsProtectSystemAttributes változó rendelni HAMIS értékre (például egy debugger), majd használja a nevét «fájlnév :: $ STANDARD_INFORMATION» formátumban, akkor elérheti az attribútumok a rendszer (különösen a szokásos információs attribútum). Ha kijelöl egy értéket egy változó HAMIS NtfsProtectSystemFiles, akkor lehet, hogy megnyitja a fájl. De amikor megpróbálja lehetővé teszik, hogy szembe nehézségekkel összefügg azzal a ténnyel, hogy számos speciális fájlok már nyitott rendszer azt jelenti, hogy inicializálja a hangerőt, és különben is, ők nem igazodnak kezelni IRP_MJ_READ lekérdezés során felmerült hozzáférését NtReadFile funkciót, és Ha ilyen kérés érkezik, a rendszer sikertelen lesz. Különleges fájlokat lehet olvasni előállítására és alkalmazására NtCreateSection NtMapViewOfSection funkciókat példányok és olvasni az adatokat tőlük.

A következő probléma az, hogy egyes speciális fájlok nem tudják kezelni az IRP_MJ_CLEANUP kérést, amelyet az utolsó fájl objektumleíró le van zárva. Ha ilyen kérés érkezik, akkor a rendszer összeomlik. Így legalább egy, a soha véget nem érő folyamathoz tartozó nyílt fájlleíró (pl. Rendszerfolyamat) szükséges.

Az NTFS téma a következőket is tartalmazza: