Configuring the Process Boot Phase
9/8/2008
When you finish adapting your OAL, you can set the system registry for your OAL. When Windows Embedded CE begins loading, the kernel starts the file system and examines the HKEY_LOCAL_MACHINE\Init registry key to identify what applications to run and what DLLs to load.
Although you determine which applications and DLLs the OS loads, most include the following modules:
- Debug shell (Shell.exe)
Shell.exe communicates with the Target Control service running on your development workstation. Include only Shell.exe in your run-time image for debugging and development. Shell.exe displays the Windows Embedded CE prompt in the command prompt build window after you use Target Control to transfer the Windows Embedded CE run-time image. - Device Manager (Device.dll) (Device.exe)
- Graphics, Windowing, and Events Subsystem (Gwes.dll)
Gwes.dll also loads and initializes input device drivers such as the keyboard driver and the touch driver. - Task Manager (Taskman.exe)
To control which applications run at system startup, create launch registry values. Launch registry values do not need to be sorted in the registry, although you can specify dependencies. You can specify up to 32 applications.
The following table shows the entries for the HKEY_LOCAL_MACHINE\Init registry key.
Entry | Value | Type |
---|---|---|
Launchnn |
program.exe |
REG_SZ |
Dependnn |
hex:xx,yy[,xx,yy] |
REG_BINARY (yy is the most significant bit) |
Launch registry values have optional dependencies as denoted by the Dependnn registry value.
Dependnn registry values specify applications that Windows Embedded CE must be running before the Launchnn applications run.
Dependnn registry values begin with the keyword Depend, followed by the same decimal number as the Launchnn registry value.
The Dependnn registry values define an order in which Windows Embedded CE launches applications. One or more dependent applications can be specified per Dependnn value. Dependent applications are specified as a series of Words in hexadecimal notation.
The following registry key example shows a typical Init registry entry using dependencies.
[HKEY_LOCAL_MACHINE\Init]
"Launch10"="shell.exe"
"Launch20"="device.dll"
"Launch30"="gwes.dll"
"Depend30"=hex:14,00
"Launch50"="taskman.exe"
"Depend50"=hex:14,00, 1e,00
In the preceding example, Gwes.dll is dependent on Device.dll starting and Taskman.exe is dependent on Device.dll and Gwes.dll starting.
The following registry key example shows a typical Init registry entry using dependencies.
[HKEY_LOCAL_MACHINE\Init]
"Launch10"="shell.exe"
"Launch20"="device.exe"
"Launch30"="gwes.dll"
"Depend30"=hex:14,00
"Launch50"="taskman.exe"
"Depend50"=hex:14,00, 1e,00
In the preceding example, Gwes.dll is dependent on Device.exe starting and Taskman.exe is dependent on Device.exe and Gwes.dll starting.
After Windows Embedded CE calls an application using the Init registry value, the application must call the SignalStarted function.
SignalStarted indicates that the application is ready for the rest of the OS to continue processing. The value that is passed as the parameter to SignalStarted is the value passed on the command line of the application started from the Init key. For more information about the format of the registry, see Registry File.