The FATFS structure holds dynamic work area of the logical drive and a file. It is given by application program and registerd/unregisterd to the Petit FatFs module with pf_mount function. There is no member that can be changed by application programs.
typedef struct { BYTE fs_type; /* FAT sub type */ BYTE csize; /* Number of sectors per cluster */ BYTE flag; /* File status flags */ BYTE pad1; WORD n_rootdir; /* Number of root directory entries (0 on FAT32) */ CLUST n_fatent; /* Number of FAT entries (= number of clusters + 2) */ DWORD fatbase; /* FAT start sector */ DWORD dirbase; /* Root directory start sector (Cluster# on FAT32) */ DWORD database; /* Data start sector */ DWORD fptr; /* File read/write pointer */ DWORD fsize; /* File size */ CLUST org_clust; /* File start cluster */ CLUST curr_clust; /* File current cluster */ DWORD dsect; /* File current data sector */ } FATFS;