Important: This post describes the ADS-designed OEM implementation of registry persistence used in ADS CE 3.0 and early 4.x builds. Beginning in 2004, ADS shifted to hive-based registries and away from the driver described in post, which has been deprecated.
Please see topic 1469 for further details about hive-based registries.
Persistent Registry Driver (Registry Backup)
The ADS Windows CE Registry Backup driver saves the full system registry to flash and restores it upon boot. This creates non-volatile, persistent storage of the system registry without the need for backup battery power.
Beta versions of this driver are available in all CE builds for the BitsyPlus (3.0 and CE.NET).
Theory of Operation
When an application calls the RegFlushKey() API, this driver saves the registry to onboard flash. The registry will be restored the next time CE cold boots. You can test the features of this driver by using the WindowsMgrReg.exe application. This application allows you to save, restore and erase the saved registry space.
Note that this driver takes care of half the task of persisting driver installations. You will still have to copy DLLs and other files needed for drivers and applications using ADSCopy or your own file loader.
The Bitsy Plus driver saves the registry to the region immediately below the flash disk. Upcoming products (e.g. BitsyX) are expected to save the registry to the region of flash immediately above the system files at the bottom of flash (see the CE memory map for details). The memory map will reserve 512kiB of flash for this purpose.
Boot Messages and Troubleshooting
You will see one of the following messages on the debug port during boot:
Saved Registry will be restored.
The saved registry was read from flash and loaded into CE.
Registry area is blank.
Saved registry area is formatted and blank. Registry not loaded.
The data in the registry area did not match the checksum. Data is considered corrupted or invalid and is not loaded.
Warning!! Registry BackUp and FlashFx use same area. Warning!! Please reconfigure FlashFX Start Address and Length. Skip restoring saved Registry.
The driver detected flash disk headers in the region of memory that the registry backup was planning to use. The flash is considered in use and not avaialable to the registry backup.
This message is generated when the driver detects a block of flash that appears to have flash disk information on it. It can be displayed in error if you are upgrading from a smaller build of CE.
If you are confident that the entries in ADSLOAD.REG for the flash disk are correct, run the WindowsMgrReg.exe application or perform a low-level format of this region of flash to prepare it for use by the driver.
Edited by akidder 27-Aug-2004: Add paragraph about errors that occur when upgrading from a smaller CE image. Edited by akidder 12-Jul-2007: Add deprecation notice and reference to new information at topic 1469. Topic no longer sticky.