16#define FAT_ATTR_READ_ONLY 0x01
17#define FAT_ATTR_HIDDEN 0x02
18#define FAT_ATTR_SYSTEM 0x04
19#define FAT_ATTR_VOLUME_ID 0x08
20#define FAT_ATTR_DIRECTORY 0x10
21#define FAT_ATTR_ARCHIVE 0x20
22#define FAT_ATTR_LFN (FAT_ATTR_READ_ONLY | FAT_ATTR_HIDDEN | FAT_ATTR_SYSTEM | FAT_ATTR_VOLUME_ID)
24#define FAT_CLUSTER_SPECIAL ((MAX_UINT32 &~0xF) | 0x7)
25#define FAT_CLUSTER_FREE 0
26#define FAT_CLUSTER_RESERVED (FAT_CLUSTER_SPECIAL)
27#define FAT_CLUSTER_BAD (FAT_CLUSTER_SPECIAL)
28#define FAT_CLUSTER_LAST (-1)
30#define DELETE_ENTRY_MARK 0xE5
31#define EMPTY_ENTRY_MARK 0x00
33#define FAT_CLUSTER_FUNCTIONAL(Cluster) (((Cluster) == 0) || ((Cluster) >= FAT_CLUSTER_SPECIAL))
34#define FAT_CLUSTER_END_OF_CHAIN(Cluster) ((Cluster) > (FAT_CLUSTER_SPECIAL))
48 UINT16 DoubleSecond : 5;
62 UINT8 CreateMillisecond;
65 UINT16 FileClusterHigh;
82 UINT8 SectorsPerCluster;
83 UINT16 ReservedSectors;
89 UINT16 SectorsPerTrack;
93 UINT8 PhysicalDriveNumber;
106 UINT8 SectorsPerCluster;
107 UINT16 ReservedSectors;
112 UINT16 SectorsPerFat;
113 UINT16 SectorsPerTrack;
115 UINT32 HiddenSectors;
117 UINT32 LargeSectorsPerFat;
118 UINT16 ExtendedFlags;
120 UINT32 RootDirFirstCluster;
122 UINT16 BackupBootSector;
124 UINT8 PhysicalDriveNumber;