

并非所有文件系统驱动程序都使用物理设备,即使使用了物理设备,也可能不使用分区驱动程序. 这提供了极大的灵活性.
当操作系统启动时,NK.exe将直接从ROM文件系统中加载FileSys.exe. 然后,FileSys.exe从ROM文件系统中的默认注册表初始化注册表.
之后
,FileSys.exe将读取注册表项以启动各种应用程序. 设备管理器从HKEY_LOCAL_MACHINE \ Driver \ BuiltIn项加载驱动程序.
FileSys.exe中内置的存储管理器会向设备管理器通知系统注册windows并行文件系统,以便接收有关块驱动程序加载和卸载的通知.

然后,存储管理器打开块驱动程序并向其查询配置文件名. 每种块设备类型都有与之关联的配置文件. 存储管理器读取有关设备分区驱动程序的信息,并加载适当的驱动程序.
由于文件系统将不需要知道数据是来自磁盘上的分区还是直接来自磁盘,因此FSDMGR封装了文件系统驱动程序,以为驱动程序的高端或低端提供接口.
存储管理器调用文件系统驱动程序(FSD),FSD使用FSDMGR_ API从设备检索数据. 如果它是CD(无分区),则设备通过FSDMGR与块驱动程序通信. 如果它是具有多个分区的硬盘,则它以相同的方式使用FSDMGR_ API. 但是之后,FSDMGR将把工作转移到适当的分区驱动程序.
我们已经讨论了存储管理器,FSDMGR,FSD,分区驱动程序和块驱动程序如何交互和互操作. 让我们详细讨论如何加载它们,并检查注册表中配置文件的详细信息. 如前所述,配置文件只是一组注册表值,用于定义有关块设备及其在系统中的使用方式的信息. 配置文件位于以下位置: HKEY_LOCAL_MACHINE \ System \ StorageManager \ Profiles
每个配置文件都位于基本配置文件项下,并由该配置文件名标识. 例如,如果Windows CE .NET设备上有硬盘,并且确实使用了硬盘配置文件,则该配置文件位于
在HKEY_LOCAL_MACHINE \ System \ StorageManager \ Profiles \ Hard Disk下. 所有配置文件信息都包含在配置文件项下方的命名值中. 下表列出了各种值及其用途.

值类型说明
文件夹REG_SZ在Windows资源管理器中向用户显示的文件夹名称. 对于多个实例,将自动附加整数. (例如,存储卡,存储卡2等)
FileSystem REG_SZ用作磁盘默认文件系统的名称. (如果使用分区驱动程序,则通常不使用. )
PartitionDriver REG_SZ列出了默认驱动程序不合适时要使用的分区驱动程序. 如果字符串为空windows并行文件系统,则不会加载任何分区驱动程序. 如果未显示该值,则使用默认分区驱动程序.
AutoFormat REG_DWORD如果未格式化磁盘,则将自动执行格式化
AutoPart REG_DWORD如果磁盘没有分区,它将被自动分区,并且其中一个分区将占据最大的可用磁盘空间量.

AutoMount REG_DWORD加载存储设备驱动程序时,它会自动安装文件系统.
名称REG_SZ在控制面板UI中显示的配置文件的名称.
MountFlags REG_DWORD用于确定如何挂载文件系统的标志.
将文件系统标记为隐藏可防止任何标准文件和文件夹枚举发现它.
存储管理器独立完成此操作,以便设备驱动程序和应用程序可以检测特定系统是否正在使用存储管理器.
MountFlags的下一位指示文件系统是否可以包含基于配置单元的注册表.

将文件系统安装为根标志可以通过将外部存储作为根连接来避免此问题,因为文件\ MyDataFile.TXT将驻留在外部存储设备的根中. 隐藏ROM文件系统将隐藏ROM文件系统数据文件(但不执行适当的EXE和DLL),从而允许更新ROM中的所有文件.
Windows CE文件系统体系结构灵活且可扩展,并且支持:
•多个块设备.
•每个块设备都支持多个分区.
•每个分区支持不同的文件系统.
•将外部设备文件系统挂载为根系统.
注册表是加载和运行文件系统过程正确(或预期)行为的关键.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-247805-1.html
我最愛的女團
quot
请教一下