Fișiere speciale ntfs

Primele șaisprezece elemente ale Master File File (MFT) sunt rezervate fișierelor speciale. NTFS 3.0 folosește numai primele douăsprezece elemente. Acestea sunt fișiere ascunse ale căror nume sunt localizate la rădăcina partiției. Fișierele nu sunt vizibile, dar, totuși, ele există. Puteți verifica acest lucru încercând să creați un fișier cu unul dintre numele rezervate din rădăcina partiției. Pe o unitate NTFS, de exemplu, nu puteți crea un fișier C: \ $ Volume.

  • $ MFT (element 0) Tabela principală de fișiere. Atributul de date conține elemente MFT, precum și atribute bitmap neutilizate.
  • $ MFTMirr (elementul 1) Mirror (backup) al primelor patru elemente MFT.
  • $ LogFile (element 2) Un fișier log volum în care se înregistrează toate modificările structurii volumului.
  • $ Volume (element 3) Atributul de date $ Volume reprezintă întregul volum. Manipularea Win32 numit «\\ \ C :.» se va deschide fișierul de volum pe unitatea C: (presupunând că C: unitatea este un volum NTFS), $ fișier conține, de asemenea, atributele Volum numele volumului, informațiile despre volumul și identificatorul de obiect.
  • $ AttrDef (elementul 4) Date despre atribute $ AttrDef conține o serie de definiții de atribute.
  • \ (elementul 5) Rădăcina volumului.
  • $ Bitmap (element 6) Atributul $ Bitmap este un raster al clusterelor de volum.
  • $ Boot (element 7) Primul sector al lui $ Boot este și primul sector al volumului. Deoarece este folosit la începutul procesului de încărcare (dacă volumul este bootabil), atunci spațiul nu este standardizat aici, iar datele stocate nu sunt aliniate la limitele naturale. Formatul primului sector poate fi descris folosind structura BOOT_BLOCK.
  • $ BadClus (element 8) Atributul de date al acestui fișier conține informații despre clustere eșuate.
  • $ Secure (elementul 9) Atributul $ secure Data conține identificatori de acces partajați. $ Secure conține, de asemenea, doi indici.
  • $ UpCase (element 10) Atributul de date $ Upcase conține echivalentul caracterelor majore ale tuturor caracterelor de 65536 Unicode.
  • Extinderea $ (punctul 11) $ Extend - un director care conține fișiere speciale utilizate de unele caracteristici suplimentare NTFS 3.0. Fișierele speciale stocate în acest director este: «$ ObjId» (identificator de obiect de sprijin), «$ Cota» (cotă de sprijin), «$ reanalizare» (puncte de reprocesare de date) și «$ UsnJrnl» (sistem de fișiere jurnal). Începând cu Windows Vista există, de asemenea, un catalog al «$ RmMetadata» (NTFS suport de tranzacții).

Deși fișiere speciale sunt de fapt fișiere, dar pentru a le deschide în mod obișnuit (de exemplu, prin NtOpenFile NtCreateFile sau funcții) nu pot. Chiar și cu drepturi administrative în ACL (permițând citirea fișierelor speciale), accesul la acestea este imposibil, deoarece pentru ei ntfs.sys (NTFS driver de sistem de fișiere) returnează întotdeauna o stare de STATUS_ACCESS_DENIED erori. În ntfs.sys există două variabile care influențează comportamentul său: NtfsProtectSystemFiles și NtfsProtectSystemAttributes. În mod implicit, valoarea acestor două variabile este TRUE.

Dacă NtfsProtectSystemAttributes variabilă pentru a atribui o valoare de FALSE (de exemplu, folosind un program de depanare), apoi folosind numele de «numele fișierului :: $ STANDARD_INFORMATION» format, puteți accesa atributele sistemului (în special atributul informații standard). Dacă alocați o valoare unui NtfsProtectSystemFiles FALSE variabilă, va fi posibil pentru a deschide fișierele speciale. Dar atunci când încercați să facă posibilă să se confrunte cu unele dificultăți legate de faptul că multe dintre fișierele speciale sunt deja deschise sistem de mijloace pentru a inițializa volumul, și, în plus, acestea nu sunt adaptate să se ocupe de interogare IRP_MJ_READ întâlnite în accesarea funcției NtReadFile, și în cazul în care o astfel de solicitare va sosi, sistemul va eșua. Fișierele speciale pot fi citite de a face și folosind NtCreateSection NtMapViewOfSection funcții de copii și să citească date de la ei.

Următoarea problemă este că unele dintre fișierele speciale IRP_MJ_CLEANUP în imposibilitatea de a procesa cererea, care se transmite atunci când acesta din urmă se închide obiectul descriptor de fișier. Dacă se primește o astfel de solicitare, sistemul se va prăbuși. Astfel, este necesar cel puțin un descriptor de fișier deschis care aparține unui proces care nu se termină niciodată (de exemplu, un proces de sistem).

Tema NTFS are, de asemenea, următoarele: