- FAT Partition Boot Sector
- FAT File Allocation Table
- FAT Root Folder
- FAT Folder Structure
- FAT32 Features
FAT32 Features
The following topics describe the FAT32 file system.
Partition Types
The following are all the valid partition types and their corresponding values for use in the Part_FileSystem member of the s_partition structure.
| Value | Description |
|---|---|
| PART_UNKNOWN (00h) | Unknown |
| PART_DOS2_FAT (01h) | 12-bit FAT |
| PART_DOS3_FAT (04h) | 16-bit FAT. Partitions smaller than 32MB. |
| PART_EXTENDED (05h) | Extended MS-DOS Partition |
| PART_DOS4_FAT (06h) | 16-bit FAT. Partitions larger than or equal to 32MB. |
| PART_DOS32 (0Bh) | 32-bit FAT. Partitions up to 2047GB. |
| PART_DOS32X (0Ch) | Same as PART_DOS32 (0Bh), but uses Logical Block Address Int 13h extensions. |
| PART_DOSX13 (0Eh) | Same as PART_DOS4_FAT (06h), but uses Logical Block Address Int 13h extensions. |
| PART_DOSX13X (0Fh) | Same as PART_EXTENDED (05h), but uses Logical Block Address Int 13h extensions. |
s_partition (FAT32)
Note: Values for head and track are 0-based. Sector values are 1-based. This structure is implemented in Windows OEM Service Release 2 and later.
- s_partition STRUC
- Part_BootInd DB ?
- Part_FirstHead DB ?
- Part_FirstSector DB ?
- Part_FirstTrack DB ?
- Part_FileSystem DB ?
- Part_LastHead DB ?
- Part_LastSector DB ?
- Part_LastTrack DB ?
- Part_StartSector DD ?
- Part_NumSectors DD ?
- s_partition ENDS
Members
- Part_BootInd
- Specifies whether the partition is bootable or not. This value could be set to PART_BOOTABLE (80h), or PART_NON_BOOTABLE(00h). The first partition designated as PART_BOOTABLE is the boot partition. All others are not. Setting multiple partitions to PART_BOOTABLE will result in boot errors.
- Part_FirstHead
- The first head of this partition. This is a 0-based number representing the offset from the beginning of the disk. The partition includes this head.
- Part_FirstSector
- The first sector of this partition. This is a 1-based, 6-bit number representing the offset from the beginning of the disk. The partition includes this sector. Bits 0 through 5 specify the 6-bit value; bits 6 and 7 are used with the Part_FirstTrack member.
- Part_FirstTrack
- The first track of this partition. This is an inclusive 0-based, 10-bit number that represents the offset from the beginning of the disk. The high 2 bits of this value are specified by bits 6 and 7 of the Part_FirstSector member.
- PartFileSystem
- Specifies the file system for the partition. The following are acceptable values:
| Value | Description |
|---|---|
| PART_UNKNOWN(00h) | Unknown. |
| PART_DOS2_FAT(01h) | 12-bit FAT. |
| PART_DOS3_FAT(04h) | 16-bit FAT. Partition smaller than 32MB. |
| PART_EXTENDED(05h) | Extended MS-DOS Partition. |
| PART_DOS4_FAT(06h) | 16-bit FAT. Partition larger than or equal to 32MB. |
| PART_DOS32(0Bh) | 32-bit FAT. Partition up to 2047GB. |
| PART_DOS32X(0Ch) | Same as PART_DOS32(0Bh), but uses Logical Block Address Int 13h extensions. |
| PART_DOSX13(0Eh) | Same as PART_DOS4_FAT(06h), but uses Logical Block Address Int 13h extensions. |
| PART_DOSX13X(0Fh) | Same as PART_EXTENDED(05h), but uses Logical Block Address Int 13h extensions.Same as PART_EXTENDED(05h), but uses Logical Block Address Int 13h extensions. |
- Part_LastHead
- The last head of the partition. This is a 0-based number that represents the offset from the beginning of the disk. The partition includes the head specified by this member.
- Part_LastSector
- The last sector of this partition. This is a 1-based, 6-bit number representing offset from the beginning of the disk. The partition includes the sector specified by this member. Bits 0 through 5 specify the 6-bit value; bits 6 and 7 are used with the Part_LastTrack member.
- Part_LastTrack
- The last track of this partition. This is a 0-based, 10-bit number that represents offset from the beginning of the disk. The partition includes this track. The high 2 bits of this value are specified by bits 6 and 7 of the Part_LastSector member.
- Part_StartSector
- Specifies the 1-based number of the first sector on the disk. This value may not be accurate for extended partitions. Use the Part_FirstSector value for extended partitions.
- Part_NumSectors
- The 1-based number of sectors in the partition.