sunrain_hjb的BLOG
Develop Helpful and Effective apps to make Jobs easier and Better!

      TexFAT(Transaction-safe Extended FAT)与TFAT功能一样,在WinCE6.0之前,包括Windows Mobile6.5使用的是TFAT,WinCE6.0和WP7则使用TexFAT。它的含义、功能及其细节,请参考http://msdn.microsoft.com/en-US/library/ee490643.aspx

      在格式化TexFAT文件系统时,需注意,“FAT版本”必须选择"eXFAT“,并复选"TFAT”,如下图所示。否则格式化后的文件系统就不是TexFAT的,也不具备transaction-safe的功能!这是实现TexFAT时,很重要的一个注意点!

      image

      将分区格式化成TexFAT后,挂载该分区时,会提示“MountVolume: Successfully mounted TexFAT volume”。具体的详细信息如下,

FSDMGR!MountTable_t::RegisterVolumeName: Registered "NAND3" at index 8FSDMGR!Reg
isterVolume: WARNING: AFS_FLAG_BOOTABLE MountFlag ignored; a boot file system is
 already mounted.FSDMGR!MountTable_t::RegisterVolume: Registered volume at index
 8 (Name="NAND3", MountFlags=0x0)FATFS!RegisterVolume: Mounted volume HVOL=0x048
f0013 at "NAND3"
FATFS!MountVolume: Successfully mounted TexFAT volume.

       在格式化成TexFAT后,以USB MASS Storage模式连接至电脑,用WinHex打开该磁盘,如下图所示。

      image

      可以看到其中有两个分区表,FAT和FAT2,而如果仅仅格式化成exFAT的话,其信息如下图所示,只有一个FAT。

      image

      这也是判断是否成功实现TexFAT的一个方法。需要注意的是,这只对exFAT有效,并不适用于FAT!

      除了以上两种方法外,还可以利用CeGetVolumeInfo()获取该分区的信息,根据CE_VOLUME_INFO的dwFlags判断该分区是否支持transaction-safe的功能。如下图所示。

      image

      可以看到,NAND2分区具备CE_VOLUME_TRANSACTION_SAFE属性,且写速度较低。而正常的exFAT的写速度较高,如下图所示。

      image

      以上测试的读写速度可能并不十分准确,但与exFAT相比,TexFAT的性能肯定会有所降低。所以这也可以作为一个判断的参考。

posted on 2010-11-06 15:51  sunrain_hjb  阅读(3380)  评论(9编辑  收藏  举报

Map