WinCE6.0实现TexFAT的注意点

简介: TexFAT(Transaction-safe Extended FAT)与TFAT功能一样,在WinCE6.0之前,包括Windows Mobile6.5使用的是TFAT,WinCE6.0和WP7则使用TexFAT。

      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的性能肯定会有所降低。所以这也可以作为一个判断的参考。

目录
相关文章
|
传感器 物联网 数据管理
.NETCore/C#开发IOT嵌入式设备的个人见解
.NETCore/C#开发IOT嵌入式设备的个人见解
1309 0
.NETCore/C#开发IOT嵌入式设备的个人见解
|
物联网 Linux 开发工具
Net Core 跨平台应用使用串口、串口道通信,可能出现的问题、更简洁的实现方法
Net Core 跨平台应用使用串口、串口道通信,可能出现的问题、更简洁的实现方法
503 0
Net Core 跨平台应用使用串口、串口道通信,可能出现的问题、更简洁的实现方法
|
C# C++
创建目标类型对象在C#7.3中不可用,请使用9.0或更高的语言版本
创建目标类型对象在C#7.3中不可用,请使用9.0或更高的语言版本
2452 0
创建目标类型对象在C#7.3中不可用,请使用9.0或更高的语言版本
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
305 0
|
12月前
|
Web App开发 数据采集 JavaScript
有JavaScript动态加载的内容如何抓取
有JavaScript动态加载的内容如何抓取
|
11月前
|
C# 数据安全/隐私保护 计算机视觉
C#开发者的新选择:使用ImageSharp进行图像处理
C#开发者的新选择:使用ImageSharp进行图像处理
1266 8
|
11月前
|
JavaScript 前端开发 C#
从入门到放弃,我们为何从 Blazor 回到 Vue
【10月更文挑战第29天】在前端开发中,许多开发者从尝试新技术 Blazor 最终回到熟悉的 Vue。主要原因包括:1) Blazor 学习曲线陡峭,Vue 上手容易;2) Vue 开发工具成熟,开发效率高;3) Vue 性能优异,优化简单;4) Vue 社区庞大,生态丰富;5) 项目需求和团队协作更适配 Vue。选择技术栈需综合考虑多方面因素。
862 0
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
619 2
|
Linux C# iOS开发
如何用 WinDbg 调试Linux上的 .NET程序
【7月更文挑战第13天】 1. `dotnet-dump`: Collects process dumps with `dotnet-dump collect -p <process_id>`. 2. `lldb`: Debugs Mono runtime apps on macOS/Linux. 3. **Visual Studio Code**: Remotely debugs .NET via the C# extension. 4. **JetBrains Rider**: Supports remote debugging of .NET on Linux.
188 2
|
开发框架 NoSQL 前端开发
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息

热门文章

最新文章