Windows Documentation

FAT32 File System

Overview

FAT32 (File Allocation Table 32) is a legacy file system introduced with Windows 95 OSR2. It extends the original FAT12/FAT16 design to support larger volumes, larger files, and improved reliability while maintaining compatibility with a wide range of operating systems and devices.

Key Features

Limitations

AspectLimit
Maximum volume size2 TB (with 512‑byte sectors)
Maximum file size4 GB – 1 byte
Maximum number of files in root65 536 entries
Security featuresNo built‑in ACLs or encryption
Fragmentation toleranceHigher than NTFS, leading to performance degradation on heavily used volumes

On‑Disk Structure

The FAT32 volume is composed of several logical regions:

  1. Reserved Region – Contains the BIOS Parameter Block (BPB) and the boot sector.
  2. File Allocation Tables (FATs) – Typically two copies for redundancy.
  3. Root Directory – Unlike FAT12/16, the root directory is a regular cluster chain.
  4. Data Area – Stores file and directory contents.
+-------------------+-------------------+-------------------+-------------------+
| Reserved Region   | FAT #1            | FAT #2            | Data Area          |
+-------------------+-------------------+-------------------+-------------------+
| Boot sector, BPB | Redundant copy of | Redundant copy of | Clusters (files/   |
|                   | FAT entries       | FAT entries       | directories)      |
+-------------------+-------------------+-------------------+-------------------+
        

Usage & Best Practices

Windows API Support

All standard Windows file I/O APIs operate on FAT32 volumes. Specific functions of interest:

CreateFile()
ReadFile()
WriteFile()
GetVolumeInformation()
SetFileAttributes()
        

For low‑level operations, the DeviceIoControl function can be used with the IOCTL_DISK_GET_DRIVE_LAYOUT_EX control code to retrieve FAT32-specific layout details.

See Also