在构建好XPE操作系统上增加EWF功能
如何在已经做好的XPE操作系统上构建EWF功能,这是一个经常被问到的话题。在实际应用环境中,经常会有这样的情况,我们手上已经有做好的XPE操作系统的设备,但是我们没有原始的XPE工程,这时如果我们需要将RAM模式的EWF修改成DISK模式的EWF,或者在GhoST后发现EWF不可用了,这时我们应该如何来处理和恢复EWF功能呢?
让我们先把应用环境来进行分类:
1. 现有的XPE操作系统根本就不具有EWF功能,也就是在构建XPE操作系统的时候,没有使用EWF NTLDR。这种情况下,我们的XPE如果需要手动添加EWF功能,就需要先将系统原有的NT Loard改为EWF NTLDR,然后再设置使用RAM模式还是DISK模式。
2. 现有的XPE操作系统已经具有EWF功能,也就是在构建XPE操作系统的时候,已经添加了以下的EWF组件:
EWF NTLDR EWF操作系统内核
Enhanced Write Filter EWF核心功能组件,包括ewfdll.dll,ewf.sys,ewfinit.dll.ewf.inf等核心文件
Enhanced Write Filter API (EWF API) EWF API支持文件,包括ewfapi.dll等编程接口
EWF Manager CONsole applicaTIon EWF控制台命令组件,是执行ewfmgr的必要组件
针对这样的XPE操作系统,再修改或者恢复EWF功能,实现起来就比较容易。下面我们来分别看一下如何恢复或者设置EWF的RAM和DISK模式。以下例子均假设XPE的EWF分区为C盘。
(1)RAM模式
如果我们的XPE在重新Ghost后出现EWF-RAM错误的情况,或者在使用过程中出现EWF-RAM损坏的情况,我们应该如何来恢复呢?
首先,必须确认EWF功能已经不可用(如果可用,我们就不需要恢复了),方法是打开CMD->ewfmgr c:,执行命令后返回的应该是错误信息。
其次,需要定义一个注册表文件,方法是新建一个文本文件,然后将以下内容拷贝到这个文本文件中:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesewf]
ErrorControl=dword:00000001
Group=System Bus Extender
Start=dword:00000000
Type=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
UpperFilters=Ewf
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesewfParameters]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesewfParametersProtected]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesewfParametersProtectedVolume0]
VolumeID={1EA414D1-6760-4625-8CBE-4F9F85A48E15}
Type=dword:00000001
ArcName=multi(0)disk(0)rdisk(0)partition(1)
最后,把这个文件命名为XXX.reg,在XPE操作系统上双击导入到注册表中。重新启动计算机,然后在CMD中执行ewfmgr c:,看看EWF的状态是否正常。
注意:这个EWF构建时必须将XPE生成在C盘,同时C盘分区不能太大,如果在别的盘符,那就改一下组册表文件,修改方法如下:
把注册表文件用记事本打开后,最后一行:
如果部署在C盘,则应该是:
ArcName=multi(0)disk(0)rdisk(0)partition(1)
如果部署在D盘,则应该是:
ArcName=multi(0)disk(0)rdisk(0)partition(2)
依次类推。
(2)DISK模式
如果我们的XPE在重新Ghost后出现EWF错误的情况,或者在使用过程中出现EWF损坏的情况,或者原有的EWF是RAM模式,我们需要修改为DISK模式。应该如何来实现呢?
首先,我们要保证我们的XPE操作系统中已经添加了Enhanced Write Filter和Enhanced Write Filter API (EWF API)组件。确定方法可以在XPE中搜索ewfdll.dll和ewfapi.dll文件,如果没有就说明没有添加这两个组件。如果没有也没关系,我们可以手动把这两个文件拷贝到XPE系统的system32目录下并注册就可以了。
其次,构建注册表文件,新建一个文本文件并命名为XXX.reg,把以下内容拷贝到这个文件中:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFFBA]
DiskSig=dword:4f544c45
OVSize=dword:0007a120 ----> 应该是500m 这里设置你的未分配分区的大小
OVLevel=dword:00000001
PVConfigs=dword:00000001
EwfEnable=hex(7):30,00,00,00,00,00
EnableLazyWrite=hex(7):30,00,00,00,00,00
PVDisk=hex(7):30,00,00,00,00,00
PVPart=hex(7):31,00,00,00,00,00
PVDiskType=hex(7):30,00,00,00,00,00
PVType=hex(7):30,00,00,00,00,00 ---〉30 为disk ,31 为ram
PVOptimize=hex(7):32,00,00,00,00,00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParametersProtectedVolume0]
ArcName=multi(0)disk(0)rdisk(0)partition(1)
ClumpSize=dword:00000200
Type=dw
- 使用LabVIEW与NI FlexRIO实现基于FPGA的单原子反馈控制(02-27)
- 使用LabVIEW和FPGA创建一个自动化的微控制器测试系统(02-06)
- 基于DSP数字多功能板的实现(09-08)
- 基于DSP2407的多功能电源控制系统设计(09-08)
- DVR操作系统分析(07-23)
- 基于PROTEUS技术的ARM7显示系统设计与仿真实现(11-22)