The Object Store

The object store in Microsoft® Windows® CE serves much the same function as the hard drive on a desktop system: it provides persistent storage for applications and their related data even when the main power supply is lost, provided there is a backup power supply. One or more memory storage chips, which typically are nonvolatile, random access memory (RAM) chips, compose the physical object store.

Conceptually, the object store consists of three types of persistent storagefile systems, databases, and a system registrythat share a single memory heap. However, file systems and databases do not reside necessarily in the object storethey can reside also in read-only memory (ROM), on separately installed systems, or on an external device, such as a "PC Card". Data is created and retrieved according to the storage type, independent of the actual storage device.

The operating system manages the stack and memory heap, compresses and expands files as necessary, and provides a seamless integration between ROM-based applications and the RAM-based data. The storage mechanism for data in the object store is transaction-based. If power is interrupted while data is being written to the object store, Windows CE ensures that the store is not corrupted, by either completing the operation when the system restarts or reverting to the last known good state before the interruption. For system files, including the registry settings, this can mean reloading the initial settings from ROM, if the OEM did not defined a backup system for saving the current settings.

Effective with version 3.0, the maximum size for the RAM file system is 256 MB, with a maximum size of 32 MB for a single file. In earlier versions of Windows CE, the limit for both the RAM system and a single file is 16 MB. Also effective with version 3.0, the maximum number of objects in the object store is increased from 65,536 to approximately 4,000,000.