C盘写保护-EWF原理详解_第1页
C盘写保护-EWF原理详解_第2页
C盘写保护-EWF原理详解_第3页
C盘写保护-EWF原理详解_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EWF原理详解EWF全称EnhancedWriteFilter(增强型写入过滤)所有热衷于XPE开发的人都知道,基于CompactFlashCards(CF卡)的EWFW发是一个热点问题。我整理了一些关于这方面的相关问题,让我们把这个问题划分为两大方面:如何设置EW林口如何使EWF工作在CF卡上。首先我们来了解一下,什么是EnhancedWriteFilter?如果你非常熟悉WindowsNTEmbedded4.0下的WriteFilter功能,那么你需要完全放掉对这个功能的理解,虽然从功能和命名上看EnhancedWriteFilter和WriteFilter很相似,但是如果你用相同的思维方

2、式理解EnhancedWriteFilter和WindowsNTEmbedded4.0下的WriteFilter功能,你会感到很困惑。要正确地理解EWF我需要先介绍一下覆盖层的概念。一个覆盖层理论上是置于被保护卷的上方,所有对保护卷的读写操作都要先经过覆盖层。开启过滤功能后,被保护卷将不能被写入,但是可以读取信息。如果目标信息不在覆盖层上,那么覆盖层可以通过读保护卷的操作,但是将会过滤写入的操作,所有的针对保护卷的写入操作都将记录在覆盖层上。写入数据流程如下图所示:写人数据到保护卷应用程序EWF将所有的写入请求指向到覆盖层硬盘分区读取数据流程如下图所示:从保护卷读取数据应用程序r当产生读取请求

3、时,EWF将读取请求重定向到适当的存储设备,覆盖层或物理的磁盘分区磁盘分区因此,覆盖层究竟在哪里呢?在WindowsNTEmbedded4.0中,WriteFilter隐藏在所有的可用内存中,如果它需要,它会消耗掉很多的内存空间。当内存空间耗尽,出现内存溢出的情况,系统将停止运行(俗称死机)。而EWF则允许它的覆盖层开辟在内存或者磁盘的第二个分区(扩展分区或者自由分区)。这个区别在小的磁盘空间上有明显的作用,覆盖层可以存在于内存上。基于RAM内存1K式)创建的EWF覆盖层是临时的,它的创建是在每次机器启动的时候,同样,在每次机器重新启动的时候它也会自动消亡,覆盖层上操作也会全部丢失。基于RAM

4、的覆盖层的访问速度是非常快的,这取决于内存和硬盘的读写速度原因。然而,基于RAM的覆盖层的尺寸是受限于内存中的未使用页面的尺寸,这点区别于基于DISK模式。当对保护卷的读写操作非常频繁的时候,内存也会因为覆盖层的不断膨胀而消耗殆尽。基于DISK(磁盘模式)创建的EWFM盖层位于物理磁盘的空间上,所以静态信息可以被保存在覆盖层上,即使断电也不会丢失。写入的信息可以从覆盖层提交到被保护卷。DISK模式建立的覆盖层读写速度要比RAM模式建立的覆盖层慢。覆盖层尺寸的设置应该等于被保护分区尺寸的大小,该设置在构建XPE工程的过程中完成(目标设计器EnhancedWriteFilter组件的Setting

5、中)这两种类型的覆盖层有着一些共性,它们在开启状态下都不允许把信息直接写入到被保护磁盘内。无论EWF的开启或者关闭状态,都允许将更新后的信息提交到被保护分区。你还可以设置多个覆盖层对应每一个分区卷标,同时每一个覆盖层都可以在运行时独立控制。为什么要使用EW陇?如果你想从ElToritoCD-ROM引导操作系统的话,你没有选择-你必须用它来提供系统的正常运行(一个正常的Windows操作系统在启动的时候需要简单的写入注册码)。你也可以使用该功能来保证你的引导分区避免不必要的写入,增强系统的健壮性,或者保护你的引导分区避免异常断电带来的损耗!接下来我们将探讨以下内容,CF卡设备是如何在EW或能中获

6、得彳护的?CF卡具有以下特性-由于频繁的读写操作会使之性能快速降低和坏块急剧增加,使用EWFW过滤所有向Flash存储介质的写操作,以延长CF卡的使用寿命。如何配置EnhancedWriteFilter?如果要使用EWF你需要添加"EnhancedWriteFilter"组件到你的工程配置中去,并且确认在添加该组件后你重新进行了依赖性检查-该组件需要EWFLD郎件支持,EWFLD即当于NTLDR一旦你添加了EnhancedWriteFilter组件,就需要点击该组件下的Settings对他进行设置。如下图所示:在Settings的设置项中,顶部一半的设置实际上是在设置覆盖层

7、的相关信息,这些包括被保护卷的数量,覆盖层的级别和EW吩区的尺寸。在Settings的设置项中,底部一半的设置实际上是显示每一个被保护分区的详细信息。你可以在指定的分区上开启或者关闭EW或能,并且开启缓存写入模式(EnableLazyWrite,EW度冲存到磁盘中的一种优化的方式,指定是否受保护卷映射数据写入缓存,以提高性能)。磁盘号、分区号和磁盘类型是非常重要的-因为我们需要通过这些设定来确认哪一个磁盘分区将被保护。你也可以指定被保护分区的覆盖层是基于RAM莫式的还是DISK模式的。你也可以在OptimizationOption中指定EWF勺优化方式(各项具体设置请参看XPEmbedded开

8、发指南)。如何在CF卡上实现EWF很多人都有这样的问题:他们开发的XPE部署在硬盘上,就能运行的非常完美,但是当他们把相同的XPE重新部署到Flash设备后,EW或能就不能正常地启用。这是什么原因导致的呢?除了EIToritovolumes以外,无论覆盖层使用RAM模式或者DISK模式,EW桧希望找到某种基于固定磁盘的分区来储存信息。在基于RAM的覆盖层中,这个EW吩区可以最小到32KB,但是这个分区必须存在。这个EW吩区用于存储开启,关闭或者其他需要重启以后才能生效的命令。在一个操作系统中,只能有一个EW吩区存在。如果在FBA(FirstBootAgent)的过程中EWFj到一个已存在的EW

9、吩区,那么它将删除这个EW吩区并且创建一个新的分区。这个EWF卷是一种0x45类型的分区,它是正常运行EWF勺必要条件。你应该在引导盘上留出足够的磁盘空间以适应EWF分区的要求。通过以上段落的介绍我们要记住,虽然你可能有足够的磁盘空间用于EW吩区的分配,但是你可能没有自由分区用于创建EW吩区。我们必须有一部份未分区空间或者自由空间在扩展分区上,以用于EW吩区的创建。而对于可移动磁盘类型的CF卡来说,在NT系统下是不能够划分出自由分区或者扩展分区的。第二点我们要记住的是,EWFR保护固定磁盘。你不能够在可以动磁盘上启用EW电能,虽然有些CF卡是固定磁盘,但是大多数CF卡是被标识为可移动磁盘的。EWF能控制可以动设备产生的添加和删除事件,不能够成功创建EW吩区,不能保护目标分区。如果系统认为你的CF卡是可以动设备,那么EWF&同样会认为你的CF卡是可移动设备,同时不能正确地加载EWF这是一个硬件设备问题,我们不能回避。如果你发现EWF能够被正常加载,请检查你的CF卡设备是没有被标识为可移动设备的。经过上述的推论可得,你的CF卡设备已经被配置为一个正常的IDE设备而并非可移动磁盘。所有的可移动设备都不能使EWF正常的工作。当然,现在针对可移动设备的CF卡已经有了完善的EWF华决方案。我们知道了EWF能够在CF卡上创建的原因是因为CF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论