The file allocation table (FAT) file system retrieves driver specific settings from the registry.
The following table shows the registry settings for the FAT file system stored in HKEY_LOCAL_MACHINE\System\StorageManager\FATFS.
| Registry value: Type | Description |
| BufferSize: REG_DWORD | Specifies the number of sector-sized buffers to use for streams.
The default value is 64 for TFAT and 32 for FAT. |
| CacheSize: REG_DWORD | Indicates the size of the disk cache, in number of sectors. This value must be a power of 2 and at least 16 sectors. If set to zero, FATFS will determine the best cache size to use.
For more information, see CacheSize registry subkey. |
| CodePage: REG_DWORD | Overrides CP_OEMCP in all character conversions. |
| Dll: REG_SZ | Specifies the name of the file system DLL. |
| EnableCache: REG_DWORD | Controls caching.
- 0 - Disables caching
- 1 - Enables caching
|
| EnableCacheWarm: REG_DWORD | Enables pre-warming of the cache. |
| Flags: REG_DWORD | Indicates FAT file system registry flags.
For more information, see Flags registry subkey. |
| FormatTfat: REG_DWORD | Formats the volume as TFAT on auto-format or through IOCTL_DISK_FORMAT_VOLUME. |
| FriendlyName: REG_SZ | Specifies a friendly name for the file system. |
| MountLabel: REG_DWORD | Pulls the volume label and uses it as a mount point. |
| Paging: REG_DWORD | Controls paging.
- 0 - Disables paging
- 1 - Enables paging
|
| Util: REG_SZ | Specifies the DLL name of utility to do format and scan. |
Flags registry subkey
The following table shows the available values you can set for the Flags registry subkey; set Flags to a combination of these values.
| Flag | Value | Description |
| FATFS_UPDATE_ACCESS | 0x00000001 | Updates access times. |
| FATFS_DISABLE_LOG | 0x00000002 | Disables event logging. |
| FATFS_DISABLE_AUTOSCAN | 0x00000004 | Disables automatic calls to ScanVolume. |
| FATFS_VERIFY_WRITES | 0x00000008 | Verifies all writes. |
| FATFS_ENABLE_BACKUP_FAT | 0x00000010 | Adds a backup FAT to all formats. |
| FATFS_FORCE_WRITETHROUGH | 0x00000020 | Sets all files to WRITE_THROUGH, regardless of the parameters to CreateFile. |
| FATFS_DISABLE_AUTOFORMAT | 0x00000040 | Disables automatic formatting of unformatted volumes. |
| FATFS_WFWS_NOWRITETHRU | 0x00010000 | Disables write through on the WriteFileWithSeek function. Improves memory-mapped file performance. |
| FATFS_DISABLE_FORMAT | 0x00020000 | Disables format. |
| FATFS_TRANS_DATA | 0x00040000 | Transacts data on a write operation. |
| FATFS_TFAT_USECLUS1 | 0x00080000 | Uses the cluster 1 entry in the FAT table for a TFAT transaction. TFAT uses the NOF field of the boot sector by default. |
| FATFS_DISABLE_TFAT_REDIR | 0x00100000 | Disables the redirect of the root directory to another hidden directory for FAT12 or 16. |
| FATFS_TFAT_ALWAYS | 0x00200000 | Marks transaction status, even if only one sector in FAT is changed. |
| FATFS_FORCE_TFAT | 0x00400000 | Forces TFAT transactions even if the volume is not formatted as TFAT. |
CacheSize registry subkey
The CacheSize registry subkey is a hexadecimal number of sectors to cache. This has to be a power of two. The following table shows valid numbers for the CacheSize registry subkey.
| Registry entry | Number of sectors | Cache in kilobytes (KB) |
| 2 | 2 | 1 |
| 4 | 4 | 2 |
| 8 | 8 | 4 |
| 10 | 16 | 8 |
| 20 | 16 | 32 |
| 40 | 64 | 32 |
| 80 | 128 | 64 |
| 100 | 256 | 128 |
| 200 | 512 | 256 |
| 400 | 1024 | 512 |
| 800 | 2048 | 1024 |
| 1000 | 4096 | 2048 |
Example
The following registry key example shows the location of the Flags and CacheSize registry subkey values.
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"Flags": dword:00000024
"CacheSize" = dword:400
If CacheSize is set to zero, the cache size will be set automatically.
See Also
File System Driver Creation | File System Driver Loading | Storage Manager | File System Filters | Block Drivers