5.05.2009

CE: Disk cluster size for FAT

FAT的 資料存取單位是 cluster,cluster 是由 sector (disk 最小存取單位) 組成的。

Disk 在 format 的時候,決定 cluster 的大小。

Cluster size 的決定,CE 有自己的作法。在 msdn 有提到:
1GB-8GB  4KB
8GB-16GB 8KB
16GB-32GB 16KB
32GB 32KB
在 CE 的 source code 中,這段算法的位置在 fatutil.dll
C:\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\FSD\FATUTIL\MAIN\formatdisk.h:
FAT12,16,32 各有不同,FAT32 是:
total sector 數,cluster 應該用的 sector 數:
{
{ 66600, 0}, /* disks up to 32.5 MB, the 0 value for SecPerClusVal trips an error */
{ 532480, 1}, /* disks up to 260 MB, .5k cluster */
{ 16777216, 8}, /* disks up to 8 GB, 4k cluster */
{ 33554432, 16}, /* disks up to 16 GB, 8k cluster */
{ 67108864, 32}, /* disks up to 32 GB, 16k cluster */
{ 0xFFFFFFFF, 64} /* disks greater than 32GB, 32k cluster */
};

沒有留言: