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 */
    BYTE    winflag;        /* win[] dirty flag (1:must be written back) */
    BYTE    pad1;
    DWORD   winsect;        /* Current sector appearing in the win[] */
    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   last_clust;     /* Last allocated cluster */
    BYTE    win[512];       /* Disk access window for Directory/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;
    DWORD   winsect;        /* Current sector appearing in the win[] */
    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 */
    WORD    last_clust;     /* Last allocated cluster */
    BYTE    win[512];       /* Disk access window for Directory/FAT/File */
} FATFS;