NTFS File System Reference
This document provides a comprehensive reference for the New Technology File System (NTFS), the standard file system for Windows operating systems.
Overview
NTFS is a high-performance file system that provides robust support for a wide range of features, including security, fault tolerance, and large storage capacities. It replaced the FAT file system in newer versions of Windows.
Key Features
- Journaling: Records file system changes before they are committed, allowing for faster recovery in case of system crashes.
- File and Folder Permissions: Granular control over access to files and directories using Access Control Lists (ACLs).
- Compression: Built-in support for compressing files and folders to save disk space.
- Encryption (EFS): Encrypting File System allows users to encrypt files to protect sensitive data.
- Disk Quotas: Administrators can manage storage space allocation for users.
- Hard Links and Junctions: Support for creating multiple directory entries that point to the same file or directory.
- Alternate Data Streams (ADS): Allows associating metadata with files beyond the standard attributes.
File System Structure
NTFS organizes data using a Master File Table (MFT) which contains records for every file and directory. Key components include:
- Master File Table (MFT): A database containing information about all files and directories.
- Attribute List: Stores metadata and attributes for files.
- Bitmap: Tracks the allocation status of clusters on the disk.
- Boot Sector: Contains information necessary to boot the operating system.
Metadata and Attributes
Each file or directory on an NTFS volume has a set of attributes that define its properties. Common attributes include:
| Attribute Name | Description |
|---|---|
| $STANDARD_INFORMATION | Stores basic file information like timestamps, file size, and flags. |
| $FILE_NAME | Contains the file's name and parent directory information. |
| $DATA | Holds the actual content of the file. For small files, this can be resident within the MFT. |
| $SECURITY_DESCRIPTOR | Defines the security permissions for the file or directory. |
| $ATTRIBUTE_LIST | Used when a file has too many attributes to fit in the initial MFT record. |
| $INDEX_ROOT / $INDEX_ALLOCATION | Used by directories to index their contents. |
Security and Permissions
NTFS uses Access Control Lists (ACLs) to manage security. An ACL is a list of Access Control Entries (ACEs), each specifying permissions for a particular security principal (user or group).
Related APIs
Developers can interact with NTFS features through various Windows APIs:
- File Management Functions:
CreateFile,ReadFile,WriteFile,SetFileAttributes. - Security Functions:
GetSecurityInfo,SetSecurityInfo,AccessCheck. - Volume Information:
GetVolumeInformation. - Directory Management:
FindFirstFile,FindNextFile.
For more detailed information on specific API functions, please refer to the respective API documentation.