The FATFS structure holds dynamic work area of the FatFs modlue and it is allocated by an application program. There is no members that can be changed from the application program.
typedef struct _FATFS {
BYTE fs_type; // FAT type
BYTE files; // Number of files currently opend
BYTE sects_clust; // Sectors per cluster
BYTE n_fats; // Number of FAT copies
WORD n_rootdir; // Number of root directory entry (always 0 in FAT32)
BYTE winflag; // win[] dirty flag (1:must be written back)
BYTE pad1;
DWORD sects_fat; // Sectors per fat
DWORD max_clust; // Maximum cluster# + 1
DWORD fatbase; // FAT start sector
DWORD dirbase; // Root directory start sector (cluster# for FAT32)
DWORD database; // Data start sector
DWORD winsect; // Current sector# appearing in the win[]
BYTE win[512]; // Disk access window for directory and FAT
} FATFS;
typedef struct _FATFS {
BYTE fs_type; // FAT type
BYTE files; // Number of files currently opend
BYTE sects_clust; // Sectors per cluster
BYTE n_fats; // Number of FAT copies
WORD n_rootdir; // Number of root directory entry
BYTE winflag; // win[] dirty flag (1:must be written back)
BYTE pad1;
WORD sects_fat; // Sectors per fat
WORD max_clust; // Maximum cluster# + 1
DWORD fatbase; // FAT start sector
DWORD dirbase; // Root directory start sector
DWORD database; // Data start sector
DWORD winsect; // Current sector# appearing in the win[]
BYTE win[512]; // Disk access window for directory, FAT and file
} FATFS;