阅读:5471回复:16
全面解析Windows Embedded CE文件系统随着Windows Embedded CE的发展,对象存储的作用越来越小,而大容量的永久存储设备被越来越多地采用。Windows Embedded CE文件系统是一种灵活的模块化设计,它允许自定义文件系统、筛选器和多种不同的块设备类型。一般来说,Windows Embedded CE基本提供了三种文件系统:基于ROM的文件系统、基于RAM的文件系统、FAT文件系统。 Windows Embedded CE下设备文件系统结构 实际上,文件系统和所有与文件相关的 API 都是通过FileSys.exe进程来管理的。这个模块实现了对象存储和存储管理器,并将所有文件系统统一到一个“\”下面的单个系统中。 FileSys.exe 由ROM文件系统、存储管理器、对象存储3个组件组成。 ROM 文件系统可以防止程序或数据被任意更改。 存储管理器是负责管理系统中的存储设备,以及用于访问它们的文件系统。 对象存储包含 RAM 系统注册表、RAM 文件系统和属性数据库,算是一个内存堆。 FileSys.exe 从ROM文件系统内的默认注册表对注册表进行初始化,以便启动各种应用程序。从HKEY_LOCAL_MACHINE\Driver\BuiltIn项加载驱动程序,然后,内置到存储管理器向设备管理器通知系统注册,以便接收有关块驱动程序加载和卸载的通知。 Windows Embedded CE文件系统体系结构 FileSys,即“File System”单从名字可以看出它是一个文件系统,但它真正的范围要比它的名字广得多,不但包括文件系统,还包括存储对象的管理。 拿现在的CE 6.0举例,其对象存储系统有丰富的存储功能,提供各种文件系统的支持,包括FAT文件系统、RAM文件系统和其他CD等通用磁盘文件系统。 支持第三方定制的文件系统,支持与SQL-CE和SQL Server数据库的链接,有良好的安全特性,支持第三方程序对磁盘进行的加密。 其中,比较重要的是CE 6.0的FAT文件系统。它采用了Extended File Allocation Table File System (ExFAT),解决了大容量文件存储的限制问题。 为什么这么说呢?在WinCE 5.0中,对象存储最大可以达到256MB,单个文件不超过4GB,在CE6.0中存储的限制就解除了。 另外,使用了Win CE 6.0的设备与桌面PC机之间的文件传输更加方便快捷;而且,ExFAT还提供了对以前文件系统的支持。 ExFAT的基本特性如下: 对象存储最大为32GB; 突破单个文件夹存储1000个文件的限制; 提升了存储速度; 突破了单个文件不超过4GB的限制; 提高了CE 6.0设备与未来桌面操作系统的互操作性; 支持OEMs和ISVs定制的针对特殊设备的文件系统。 Windows Embedded CE文件系统体系结构是灵活的和可扩展的。不过,将Windows Embedded CE移植到目标平台上,必须为在平台上已建立的设备提供驱动程序。如键盘、显示器等,对操作系统都有一定的接口。 在Windows Embedded CE中应用程序通过文件系统里的特殊入口访问外围设备。WinCE中的文件系统代码包括那些识别特殊文件名并重定向IO操作到适当的流接口驱动程序的代码。 流接口驱动开发 流接口驱动程序是一般类型的设备驱动程序,它表现为在用户一级的动态链接库DLL,用来实现一组固定的函数称为流接口函数,这些流接口函数使得应用程序可以通过文件系统访问这些驱动程序。 流接口驱动程序的主要任务就是把外设的使用传递给应用程序,这是通过把设备表示为文件系统的一个特殊文件实现的。比如:对于串口1在用户级别的程序里面通常被描述为COM1。 不是所有文件系统驱动程序都使用了物理设备,即使使用,也可能没有使用分区驱动程序。因为文件系统将不需要知道数据是否来自磁盘上的分区、或者直接来自磁盘,所以,FSDMGR会对文件系统驱动程序进行包装,以便为驱动程序的高端或低端提供接口。这就提供了巨大的灵活性呢。 |
|
沙发#
发布于:2009-04-17 19:24
Windows Embedded CE是允许大家自己编写并注册一套文件系统的,只要接口符合Win32文件系统API就OK。
|
|
板凳#
发布于:2009-04-17 20:07
补充,将文件系统标记为隐藏可以防止它被任何标准的文件和文件夹枚举发现。
|
|
地板#
发布于:2009-04-18 11:01
同意楼上,隐藏ROM文件系统将隐藏ROM文件系统数据文件,而且允许更新 ROM 中的所有文件。
|
|
地下室#
发布于:2009-04-18 12:23
Windows Embedded CE使用硬盘配置文件,则配置文件位于HKEY_LOCAL_MACHINE \ System \ StorageManager \ Profiles \ Hard Disk 下。
|
|
5楼#
发布于:2009-04-18 14:43
我觉得FAT文件系统使用的范围最广,能够应用在ATA设备、Flash存储设备、SRAM存储设备上呀。
|
|
6楼#
发布于:2009-04-18 20:10
fsdmgr.dll包含存储管理器的代码。PNPUnloadDelay是啥意思?
|
|
7楼#
发布于:2009-04-20 20:39
回答楼上,是指存储管理器在接收到即插即用设备的卸载通知后的延时时间。
|
|
8楼#
发布于:2009-04-20 21:22
其实,Windows Embedded CE的文件系统筛选器很有用,可以允许对文件访问进行某些特殊的处理,以便进行数据加密、压缩和使用统计数据进行监视。
|
|
9楼#
发布于:2009-04-21 20:24
基于 ARM 的设备模拟器便于配置、构建、测试操作系统映像。
|
|
10楼#
发布于:2009-04-21 20:58
CE 6.0 编辑器采用 Intellisense 技术,语法加亮、图形和注册表文件编辑器可以提供编码和构建速度。
|
|
11楼#
发布于:2009-04-21 21:28
新型编译器增加了 C++ 语言标准,提高了库的水平,支持 CRT、ATL 和 MFC,并提高了运行时安全功能的检查能力 (/GS)。
|
|
12楼#
发布于:2009-04-21 21:56
兼容内核可处理32,000多个并行程序,每个程度的虚拟内存空间为2 GB。文件系统支持大型存储介质和文件尺寸 (最大4 GB),可清除介质加密。
|
|
13楼#
发布于:2009-04-21 22:25
看了楼主的介绍也学习了这么多,我是这样理解Windows CE的:它是微软为嵌入式设备打造的操作系统,而嵌入式设备可谓多种多样,这就要求CE操作系统必须是可定制的,所以微软将Windows CE设计为模块化的操作系统。说简单点,我们可以把Windows CE想像成一盒积木,你可以用积木搭建出任何物体,但不一定要把所有的积木都用上。
|
|
14楼#
发布于:2009-04-21 22:53
简单地说,对象存储是一个内存堆,由 FileSys.exe 控制。对象存储包含 RAM 系统注册表、RAM 文件系统和属性数据库。它们都是FileSys.exe 模块的可选组件。RAM 文件系统和属性数据库是完全可选的,并且在某些系统中可以根本不存在。对每个 Windows CE 设备来说,以某些形式存在的注册表是必需的。
|
|
15楼#
发布于:2009-04-21 23:20
嗯……RAM 的文件系统通常连接到呈现给应用程序的统一文件系统的根。就是说,文件“\MyFile.txt”位于统一系统的根和 RAM 文件系统的根中。ROM 文件系统连接到统一文件系统中的“\Windows”文件夹。这意味着,ROM 中的所有 文件均可作为“\Windows”文件夹中的只读文件来访问。
|
|
16楼#
发布于:2009-04-21 23:40
存储管理器 (Storage Manager) 是 Windows CE .NET 的新功能。如名称所示,它负责管理系统中的存储设备,以及用于访问它们的文件系统。
|
|