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时,很重要的一个注意点!
将分区格式化成TexFAT后,挂载该分区时,会提示“MountVolume: Successfully mounted TexFAT volume”。具体的详细信息如下,
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打开该磁盘,如下图所示。
可以看到其中有两个分区表,FAT和FAT2,而如果仅仅格式化成exFAT的话,其信息如下图所示,只有一个FAT。
这也是判断是否成功实现TexFAT的一个方法。需要注意的是,这只对exFAT有效,并不适用于FAT!
除了以上两种方法外,还可以利用CeGetVolumeInfo()获取该分区的信息,根据CE_VOLUME_INFO的dwFlags判断该分区是否支持transaction-safe的功能。如下图所示。
可以看到,NAND2分区具备CE_VOLUME_TRANSACTION_SAFE属性,且写速度较低。而正常的exFAT的写速度较高,如下图所示。
以上测试的读写速度可能并不十分准确,但与exFAT相比,TexFAT的性能肯定会有所降低。所以这也可以作为一个判断的参考。