this is a description of all the files which are relevant to coldbooting a windows ce device.

databases, filesystem, and registry are initialized by filesys.exe based on the following config files

default.fdf

this is the registry information, as generated by regcomp.exe from the platform builder.
struct header {
	DWORD signature;	// 0x1d8374b2
	DWORD size;			// size of entire file
	struct entry entry[];
};
struct entry {
	WORD entrysize;
	WORD entrytype;		// 1 = path, 2 = key,value pair
	union {
		struct pathentry;
		struct keyvalentry;
	};
};
struct pathentry {
	WORD hive;				// 0 = HKCR, 1 = HKCU, 2 = HKLM
	WORD pathlen;			// in nr of wchars
	WORD zero;				// always 0  !!! this field is not present in wince4.x
	WCHAR path[];
};
struct keyvalentry {
	WORD valuetype;		// 1 = string, 2 = empty, 3 = binary, 4 = dword, 7 = wbinary
	WORD keysize;			// in nr of wchars
	WORD valuesize;		// in bytes
	WCHAR key[];
	BYTE  value[];
};
key/path size is including terminating NUL
the key 'Default' is the '@' default key.

initdb.ini

this initializes all databases

initobj.dat

this initializes the filesystem

calibrate + cut-paste tutorial

the program that does this is 'welcome.exe'.
  1. initobj.dat contains a line that links 'welcome.lnk' into the startup folder. causing it to run as soon as the shell starts up.
  2. welcome.exe deletes this link when it is finished
  3. welcome.lnk contains 'MSWELCOME', which refers to the 'HKLM\SOFTWARE\Microsoft\Shell\Rai\:MSWELCOME' key in the registry, which points to "\Windows\Welcome.exe"
other things that welcome.exe does:

oeminfo.xml

contains public keys for HTC, and microsoft

.rgu files

since pocketpc 2003, many registry settings have moved from default.fdf to .rgu files. these files are processed by regupdater.exe, but I have not yet researched how and when exactly.

AutoConfig.exe

AutoConfig is loaded via a 'startup' item set by initobj.dat.
it locates the operator rom data, and presents a list of supported configurations found in the customtab.dat file.