972
edits
[unchecked revision] | [unchecked revision] |
(Fixed error in OEM Parameters table) |
m (Bot: Replace deprecated source tag with syntaxhighlight) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 79:
| 0x060 || 4 || FirstClusterOfRootDirectory || The starting cluster of the root directory's cluster chain.
|-
| 0x064 || 4 || VolumeSerialNumber || A serial number for this partition, usually comprised by calculating the date and time of format into a single 64-bit value. There is no standard for this
|-
| 0x068 || 2 || FileSystemRevision || Specifies the version of exFAT specification to which the structures in this partition adhere. For now, there is only a single exFAT specification; version 1.00. However in the future there may be more than this, and a driver should not attempt to parse exFAT structures of an exFAT specification version with which it is not familiar.
Line 124:
|-
|}
=== Extended Boot Sectors Structure ===
Line 254 ⟶ 252:
=== Filesystem Header ===
<
struct bootsector {
char jump[3];
Line 273 ⟶ 271:
char bootsign[2];
};
</syntaxhighlight>
Block bitmap is cluster 2, upcase tbl is cluster 3.
=== Boot Checksum Calculation ===
<
UInt32 BootChecksum (UCHAR * Sectors, USHORT BytesPerSector)
{
Line 300 ⟶ 298:
return Checksum;
}
</syntaxhighlight>
Line 308 ⟶ 306:
32-byte entries. Entries contain one of a few possible entry types, first byte identifies which type it is. The second byte identifies how many subsequent entries are part of this entry. All bytes after are dependent on the type of entry. Any entry with the highest bit of entrytype set is not used.
<
struct {
uint8_t entrytype = 0x85;
Line 317 ⟶ 315:
char pad[12];
} fileEntry;
</syntaxhighlight>
<
struct {
uint8_t entryType = 0xC0;
Line 330 ⟶ 328:
uint64_t filesize2;
} fileInfoEntry;
</syntaxhighlight>
<
struct {
uint8_t entrytype = 0xC1, entrycount = 0x00;
uint16_t name[15];
} filenameEntry;
</syntaxhighlight>
|