Hi,
Sorry to post a question on that matter, but I can't find
why my configuration does not work for the hive-based
registry.
I read the documentation about the hive-based registry
settings and I set this into platform.reg :
(NOTE : I use the Geode BSP and Windows CE 4.2. I put the
HIVE-BASED registry feature into my platform).
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
"SYSTEMHIVE"="\\Hard Disk\\system\\"
"DefaultUser"="User"
"Start DevMgr"=dword:1
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]
"MountFlags"=dword:2
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile\FATFS]
"MountFlags"=dword:2
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Instance\GeodeIDE1\Device0]
"Flags"=dword:1000
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Instance\GeodeIDE1]
"Flags"=dword:1000
[$(PCI_BUS_ROOT)\Template\GeodeIDE]
"Flags"=dword:1000
[$(PCI_BUS_ROOT)\Template\GeodeIDE\Device0]
"Flags"=dword:1000
; END HIVE BOOT SECTION
The settings concerning the IDE devices are taken from the
geodeide.reg file. That's the only reference I found about
the IDE settings and the "[HKEY_LOCAL_MACHINE\Drivers\"
keys mentionned in bullet 5. of the "Using the Hive-based
registry" help topic.
I use a Compact Flash as an IDE device and I have the
"ATAPI PCI/IDE Storage block driver" included in my platform.
This platform runs well and I can see the "Hard Disk"
folder as long as I don't set anything for the hive-based
registry.
Here is what I have from the debug traces on COM port:
Booting Windows CE version 4.20 for (x86
)
&pTOC = 80225408, pTOC = 80c81744, pTOC->ulRamFree =
80cc1000, MemForPT = 000240
00
Old or invalid version stamp in kernel structures -
starting clean!
Configuring: Primary pages: 12055, Secondary pages: 0,
Filesystem pages = 6027
Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 80ce6000, extension: 00003000, length: 02f17000
X86Init done, OEMAddressTable = 80238918.
Windows CE KernelInit
Updated eptr->e32_vsize to = 00085000
Scheduling the first thread.
0x83bff030: KernelInit2: pCurThread=83bff030
hCurThread=03bff1da hCurProc=03bff0
02, KernelInit = 80265aae
0x83bff030: Updated eptr->e32_vsize to = 00010000
0x83bff030: >>> Loading module NK.EXE at address
0x80220000-0x802A5000 (RW data
at 0x80C83000-0x80CB62EB)
0x83bff030: first = 01f50000, last = 02000000,
SharedDllBase = 03530000
0x83bff03
0: >>> Loading module coredll.dll at address
0x03F70000-0x03FF2000 (RW data at 0
x01FFF000-0x01FFFBD0)
0x83bff030: Did not find emulation code for x86... using
floating point hardware
.
0x83bea3e0: >>> Loading module filesys.exe at address
0x04010000-0x04074000
0x83bea3e0: FileSystem Starting - starting with clean file
system
0x83bea3e0: ERROR:
d:\mckendric\private\winceos\coreos\filesys\reg\reghive\.\reg
istry.c line 534: 0x83bea3e0: FSREG: Unable to mount boot
hive from ROM
0x83bea3e0: FSREG: Unable to load system registry!
Registry will be unavailable
.
0x83bea3e0: FileSys: DEBUGCHK failed in file
d:\mckendric\private\winceos\coreos
\filesys\reg\reghive\.\registry.c at line 825
+KITLRegisterDfltClient, service:2
+OEMKitlInit
Unable to initialize KITL Transports!
-OEMKitlInit
!KITLRegisterDfltClient: Fail to initialize KITL
+KITLRegisterDfltClient, service:2
+OEMKitlInit
Unable to initialize KITL Transports!
-OEMKitlInit
!KITLRegisterDfltClient: Fail to initialize KITL
0x83bea3e0: DEBUG_BREAK @00025396 Ignored.
0x83bea3e0: FSREG: Logging in default user.
0x83bea3e0: SetCurrentUser: Logging out (nobody), logging
in default
0x83bea3e0: Exception 00e Thread=83bea3e0 Proc=03bea5ba
'filesys.exe'
0x83bea3e0: AKY=00000003 PC=03fb814f ESP=0408f668 EA=00000000
0x83bea3e0: ERROR:
d:\mckendric\private\winceos\coreos\filesys\reg\profiles\.\pr
ofiles.c line 171: 0x83bea3e0: FS: User Profile Exception
Handler
0x83bea3e0:
Initializing Database
0x83bea3e0: DB:Validation: Name already exists DB_notify_events
0x83bea3e0: DB:CeCreateDatabase failed
0x83bea3e0: Filesystem initialized!
0x83bea000: InitializeJit
0x83bea000: InitMUI: DISABLED (-2144960088)
0x83bea3e0: FS: HKLM\System\Events not available, no signal
events created.
0x83bea3e0: ERROR:
d:\mckendric\private\winceos\coreos\filesys\main\.\fsmain.c l
ine 2821: 0x83bea3e0: Unable to locate init key for
starting apps!
Note : I also tried to set up the environment variable
BSP_ENABLE_FSREGHIVE but this has no special effect. I
guess it just enable the device manager by setting the
"Start DevMgr" registry key which I already override in my
registry settings above.
Regards.
Gabriel