什么是FBWF: FBWF(File Based Write Filter)是微软在Windows XP Embedded SP2 Feature Pack 2007及以后版本中推出的最新写保护技术,FBWF能够将处于保护状态的卷的所有写入操作重新定向到一块内存区域,这块内存区域被称作覆盖层。覆盖层类似于存储介质的一个投影,对存储介质做的任何写操作都将映射到覆盖层中,而这种操作对于用户而言是透明的,即我们看到的最终内容则是存储介质和覆盖层的叠加(见FBWF复合视图)。另外我们能够对覆盖层中的数据进行操作,比如提交(Commit)、恢复(Restore)、......等。FBWF工作过程如下图所示: FBWF Overview图
FBWF复合视图
增强的写入过滤器(EWF)是另外一个由Windows XP Embedded提供的写入过滤器,它通过截取对扇区级别的调用来完成写入过滤功能。保护扇区级别的功能让EWF拥有了控制整个文件系统的能力,并通过对扇区的保护达到保护文件系统的目的。然而,EWF盲目地过滤所有对扇区的读写操作,不能直接对文件进行保护。由于FBWF正是针对文件级别设计的,它能够智能地针对文件、文件夹或者任何文件系统数据结构进行过滤,有效地达到了保护文件系统的目的。
现在,为了将对文件系统的保护提高到文件级别,开发人员需要告诉FBWF哪些文件或文件夹是需要被保护的,以及哪些是不需要保护的。我们通过一个被称之为“写入列表”的表格来完成这项功能。这张表格允许FBWF绕开目录以及保护卷对文件的控制,通过FBWF直接在磁盘存储介质上进行操作。假设一个用户频繁地下载和保存视频文件,那么设备的存储介质目录将会被配置为“可写入的”,并允许文件在系统重新启动后仍然可以被访问。一些典型的可写入列表包括日志文件和系统事件文件。
FBWF另外一个有用的特性是能够实时提交文件。当操作系统正在运行当中,文件可以被提交到磁盘上的。
综上所述,FBWF的写入保护在嵌入式设备上是文件级别的,这一点不同于增强的写入过滤器(EWF)对嵌入式设备存储器的扇区级别保护。这一点让FBWF可以在新的应用场景下工作,比如针对服务应用文件或是系统文件的保护,而不用对整个磁盘进行保护。更加详细的介绍见MSDN:
http://msdn.microsoft.com/zh-cn/library/aa940926(en-us,WinEmbedded.5).aspx
FBWF配置
在Target Designer中将File Based Write Filter组件添加到配置中,在Setting中设置各种选项,见下图所示。
关于FBWF的配置可通过以下两种方式进行:1、在设计(Target Designer)中进行配置;2、在运行时通过控制台命令配置或利用FBWF Apis编程控制。各项参数设置参考如下说明(点击图片可进行链接):
FBWF控制台命令
在XPE映象配置中添加了File Based Write Filter组件后会向系统中添加4个文件:fbwf.sys、fbwfdll、fbwflib.dll、fbwfmgr.exe。其中fbwfmgr.exe是FBWF的一个控制台命令执行程序,它允许我们在运行时通过命令行的方式对FBWF进行设置和操作。要正确运行fbwfmgr.exe在XPE配置中必须包含以下组件:
1.File Based Write Filter
2.CMD - Windows Command Processor
在“开始”->“运行”->“cmd.exe”启动命令行工具,在提示符后键入fbwfmgr回车就能看到当前FBWF保护卷的各种信息。 fbwfmgr.exe的语法格式是:
fbwfmgr [/? | /help /[switch] | /displayconfig | /overlaydetail | /enable | /disable | /addvolume [volumename] | /removevolume [volumename] [1|0] |
/addexclusion [path] | /removeexclusion [path] |
/setthreshold [threshold] | /setcompression [1|0] | /setpreallocation [1|0] /commit [volumename] [filepath] /restore [volumename] [filepath] ]
具体参数的含释:
displayconfig:显示所有的被保护卷的配置信息, 覆盖层配置及可以写入的文件及文件夹路径。
overlaydetail:显示所有被保护卷的覆盖层内容明细,该命令返回: Contents:当前所有保护卷中的文件和文件夹的尺寸和打开的文件句柄。 Memory Usage:覆盖层占用的内存总数。
enable: 在重新启动计算机后开启FBWF写保护功能。 disable:在重新启动计算机后关闭FBWF写保护功能。
addvolume:添加一个卷为FBWF保护卷,该操作在下次重新启动后生效。 removevolume:移除一个FBWF的保护卷,该操作在下次重新启动后生效。 addexclusion:在FBWF的保护卷上添加一个可写入的文件或者文件夹路径,该操作在下次重新启动后生效。
removeexclusion: 在FBWF的保护卷上移除一个可写入的文件或者文件夹路径,该操作在下次重新启动后生效。
setthreshold:设置覆盖层占用的内存尺寸,该操作在下次重新启动后生效。 setcompression:设置覆盖层类型为启用压缩(enabled (1))或者关闭压缩(disabled (0)),该操作在下次重新启动后生效。
setpreallocation:设置覆盖层类型为预分配(enabled (1))或者关闭预分配(disabled (0)),该操作在下次重新启动后生效。
commit:提交覆盖层的内容到真实的磁盘或媒体。卷名称可以是磁盘号(例如, \"C:\" or \"D:\")或者设备名称(例如, \\\\Device\\\\HarddiskVolume1)。注意,名称不能是卷标。文件路径必须是一个使用“\\”开始的绝对路径。而且卷表必须是当前被保护的。否则,会出现以下的错误提示信息: \"The system cannot find the drive specified\" 。
restore: 丢弃对文件修改的内容,使文件还原到初始的状态。即原始磁盘中文件的存储状态。卷名称可以是磁盘号(例如, \"C:\" or \"D:\")或者设备名称(例如,\\\\Device\\\\HarddiskVolume1)。注意,名称不能是卷标。文件路径必须是一个使用“\\”开始的绝对路径。而且卷表必须是当前被保护的。否则,会出现以下的错误提示信息: \"The system cannot find the drive specified\" 。 ?:显示帮助信息和用法。
help / [switch]:显示指定命令的帮助信息。
如果在fbwfmgr后面没有任何参数,则显示所有的被保护卷的配置信息, 覆盖层配置及可以写入的文件及文件夹路径。和输入fbwfmgr displayconfig 效果是一样的。
FBWF的API也可以实现以上的配置和设置,这需要我们通过编写自己的应用程序来实现。FBWF不能识别相对路径,请使用完整的文件名来代替。
FBWF Apis
FBWF在运行时除能够通过控制台命令行方式配置或操作外还能利用提供的API接口进行配置或操作,详细描述见MSDN:
http://msdn.microsoft.com/zh-cn/library/aa940917(en-us,WinEmbedded.5).aspx
FBWF同EWF的区别
FBWF和EWF是Windows XP Embedded提供的两种写入过滤保护技术,也是Windows XP Embedded提供的比较重要的嵌入式特性,下面列出两者的一些区别。
1、写过滤的最小单位不同
增强的写入过滤器(EWF)通过截取对扇区级别的调用来完成写入过滤功能,保护扇区级别的功能让EWF拥有了 控制整个文件系统的能力,并通过对扇区的保护达到保护文件系统的目的,即EWF操作的最小单位是磁盘分区。 由于FBWF正是针对文件级别设计的,它能够智能地针对文件、文件夹或者任何文件系统数据结构进行过滤,有效地达到了保护文件系统的目的,即FBWF操作的最小单位是文件或文件夹。 2、覆盖层类型不同
FBWF和EWF两种写入过滤保护技术中都存在“覆盖层(overlay)”的概念,在EWF中支持RAM和DISK两种类型的覆盖层设置,而在FBWF中值支持RAM模式即覆盖层只能缓存在内存中。 3、EWF支持但FBWF不支持的系统功能
另外,只有使用EWF的状态下,才可以使用Hibernate Once Resume Many (HORM) - 一次休眠,多次启动。而如果启用了FBWF,HORM则不可用。
4、FBWF支持但EWF没有的特性
5、关于FBWF的问题
FBWF保护是文件级别的,在提交数据时首先要知道那个文件发生了改变了,然后在提交该文件。假如XPE中运行的自定制应用程序有很多配置文件,在程序运行过程中可能会改变任何配置信息,要保存该配置信息首先要查找那些配置文件数据发生了改变,然后再逐一提交文件数据,在这种情况下就比较麻烦;
如果使用了FBWF机制就要监视内存的使用量:FBWF将所有写操作重定向到内存,因为内存大小是有限的,可能有耗尽的可能(应用程序长期运行不关机)。所以在应用程序运行过程中要监视其使用量,这样就增加了应用程序的“负担”。 以上是使用FBWF过程中遇到的一些问题,欢迎交流!
1、关于EWF Disk Mode见如下链接:
http://lbaoshan1977.blog.sohu.com/152122404.html 2、关于EWF RAM Mode见如下链接:
http://lbaoshan1977.blog.sohu.com/152120534.html
3、关于EWF RAM Reg Mode见如下链接:
http://lbaoshan1977.blog.sohu.com/152121661.html 4、关于WEF技术总结见如下链接:
http://lbaoshan1977.blog.sohu.com/148255053.html
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务