[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS] "MountFlags"=dword:0 ; "Flags"=dword:14 ; |
具体的控制是Flags项,这个分支定义的是整个FATFS的参数,如果想进行分类进行不同的定义,则需要修改相关注册表分支,例如,想定义flash自动扫描则添加定义如下
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv\FATFS] "MountFlags"=dword:2 "Flags"=dword:10 ;在Profiles\FlashDrv添加FATFS分支定义falsh上FATFS文件系统的相关参数,其他的sd卡,U盘等也可分别进行定义 |
以上两个分支可同时存在,进行详细的的定义。
关于FATFS相关参赛的定义如下:(http://msdn.microsoft.com/en-us/library/ms885403.aspx)
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.
|
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.
|
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 theCacheSize 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.
http://www.vckbase.com/document/viewdoc/?id=1267
对”Flags”值的描述如下(C:\WINCE500\PRIVATE\WINCEOS\COREOS\FSD\FATFS\fatfs.h):
标志 | 值 | 描述 |
FATFS_UPDATE_ACCESS | 0x00000001 | 更新访问时间 |
FATFS_DISABLE_AUTOSCAN | 0x00000004 | 不能自动调用ScanVolume |
FATFS_VERIFY_WRITES | 0x00000008 | 检验所有写操作 |
FATFS_ENABLE_BACKUP_FAT | 0x00000010 | 备份FAT表 |
FATFS_FORCE_WRITETHROUGH | 0x00000020 | 让系统可以直接将任何缓冲区中的数据写到磁盘上,这样系统将加快写数据到磁盘的速度 |
FATFS_DISABLE_AUTOFORMAT | 0x00000040 | 禁止自动格式化未格式化的分区 |
FATFS_DISABLE_COMPCHECK | 0x00000080 | 禁止自动检测压缩分区 |
上面把FLAGS定义为 14,也就是备份FAT表、不自动扫描卷标。这样8G的SD卡,3秒就可以出现盘符了。
原创文章,转载请注明:转载自 风雨无阻博客(http://Apollo5520.cublog.cn) 本文链接地址:http://blog.chinaunix.net/u3/105764/showart_2114352.html |