One solution if one intends to stay with Windows XP is virtualization, but another is using a write filter to protect the operating system.
What's a write filter?
A write filter is similar to a RAM disk in that it redirects write operations to nonpersistent memory.
Microsoft sells a version of Windows called Windows Embedded mostly used on embedded devices.
Interestingly this version of Windows Embedded is based on Windows XP and remains supported until 2019.
Included in Windows Embedded (downloadable as a free evaluation) is Enhanced Write Filter (EWF).
When turned on EWF protect one or more volumes by redirecting the write operations to RAM.
Even though it's not officially supported, it's possible to use EWF on a standard installation of Windows XP.
Instructions
---
1) You need 3 files from XPe: ewf.sys, ewfmgr.exe, and ewfntldr. These can be retrieved from the XPe trial available on MSDN. Once you install it just
go to the Repositories directory and just look for the most recent versions in the subdirs with all the components.
2) Place ewf.sys in your system32\drivers directory and ewfmgr.exe in system32. Go to your root dir and rename ntldr to ntldr_bak and copy ewfntldr and
rename it ntldr.
3) Open up regedit and go to HKLM\SYSTEM\CurrentControlSet\Enum\Root. Right-Click and choose Permissions. Set "Everyone" to full-control.
4) Open up notepad and copy-and-paste the following lines:
-------copy after this line-----------
Windows
Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\R oot\LEGACY_EWF]
"NextInstance"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\R oot\LEGACY_EWF\0000]
"Service"="EWF"
"Legacy"=dword:00000001
"ConfigFlags"=dword:00000020
"Class"="LegacyDriver"
"ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}"
"DeviceDesc"="EWF"
"Capabilities"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\R oot\LEGACY_EWF\0000\Control]
"ActiveService"="EWF"
----------end copy---------------
save the file as ewf1.reg. Double-click and answer yes to both dialogboxes.
5) Go back to regedit and reset the Permissions; Everyone read only.
6) Go to
http://msdn.microsoft.com/library/de...sp1_cf_ewf.asp
and set the registry entries they detail in that article. Search for "First, verify that the following entries are present on your device". Just add those
entries they've got listed there. Notice the "ArcName" value under ewf\Parameters\Protected\Volume0. Be sure to edit it so it matches whichever partition
you want to protect.
7) Reboot!! It should boot up normally. Once you reboot go to a command line and run "ewfmgr c:". It should list your settings for that drive (ewfmgr d:,
ewfmgr e:, etc., etc.) You can test whether it's working by creating some files (or deleting them) and then rebooting. The volume will not have changed.
Now, let's say you want to make some permanent changes on that volume. Run "ewfmgr c: -commitanddisable -live". This will commit any changes and disable
ewf right then and there, but you have to remember to run "ewfmgr c: -enable" before you reboot to reenable ewf. That's the prob, you can't enable ewf
on the fly, only disable works that way. You can also run "ewfmgr c: -disable" which will disable on reboot without committing. Take a look at the docs
for a better idea. There's also an API detailed in the XPe docs for those interested in programmatically configuring EWF (could be useful for touchscreen
interface so that a user can disable EWF to run Windows Update or whatever).
That's all I've got for now. Based on what I saw on VirtualPC, writes are indeed being filtered out (the little red light didn't flash at all using VPC,
only green for reading). A few things to keep in mind: the more writes you make to your protected volume the more RAM EWF will consume. That's how this
thing works! There actually is a setting to send writes to another partition, but I've only worked on RAM types for now. You may want to disable as much
as possible: a pagefile doesn't make sense since if you need to use it then you'll run out of memory anyways (remember that all writes go to RAM with EWF).
VirusScanners aren't really necessary for a carPC, especially since any virus will get flushed when you reboot. I'm trying to think of what else.... Automatic
updates aren't a good idea since it'll just use up RAM by EWF and won't last after a reboot.
I guess that's it for now. If your system gets hosed just try booting up with Last known good configuration. You'll probably need to redo the reg settings.
---
Credits:
"Using EWF on regular WinXP", www.mp3car.com
Download the EWF files from:
http://www.saunalahti.fi/pesonpa/projec … bedded.php
Read the instructions above and try it out.
Warning! Performing the steps described involves modification of the registry and system files, so do it at your own risk.