Kernel Image Libraries (Windows Embedded CE 6.0)


In Windows CE 5.0, the following libraries make up the kernel image: NK.lib, NkProf.lib, KITL.lib, and FullLibc.lib. In Windows Embedded CE 6.0, NK.lib, NkProf.lib, and KITL.lib are no longer used to create the kernel image. Instead, FullLibc.lib creates OAL.exe, Kern.dll, and KITL.dll.

The OEM adaption layer (OAL), which is a required part of the kernel image, is an executable program (OAL.exe) that contains the routines that the kernel uses to communicate with the hardware platform. Windows Embedded CE supplies other required portions of the image that are specific to architecture but not to the hardware platform.

In Windows CE 5.0, you link the OAL code to the kernel to build one of three different kernel executables, named NK.exe. As of Windows Embedded CE 6.0, you do not build multiple versions of the kernel. The OAL executable, OAL.exe, becomes NK.exe when the build system adds the OAL program to the kernel image. The kernel image contains a separate DLL, Kernel.dll. Therefore, when Microsoft releases a kernel update, you do not have to produce a new NK.exe, only the new Kernel.dll file.

There are three possible configurations of an OAL executable, depending on the presence and location of the kernel independent transport layer (KITL) in the kernel image as shown in the table below:

OAL program name



No KITL of any kind exists in the kernel image.


KITL is built into OAL as a static library.


(+KITL.dll in image)

KITL exists in the kernel image as a DLL. In this case, KITL.dll must also be available.

Kernel.dll contains the architecture-specific components provided by Windows Embedded CE. Based on the profiling configuration, there are two different sources for this file as shown in the table below:

Kernel DLL name



No profiling support.


Kernel includes profiling support.

The Romimage Tool (Romimage.exe) in the build system selects the correct combination of OAL files and kernel libraries based on the IMGNOKITL, IMGNOKITLDLL, and IMGPROFILER environment variables that you set. If your Board Support Package (BSP) includes all configuration variants, then the build system selects the type to build during run-time image creation (Makeimg.exe).

For more information about OAL and kernel linkage, see Windows Embedded CE 6.0 Image Creation (video).

If you do not set the IMGNODEBUGGER environment variable, the kernel debugger is included as part of the kernel image and the kernel debugger is attached to the kernel process and runs as soon as the image boots.

The following additional files are added to the kernel image when IMGNODEBUGGER is not set:

  • Kd.dll
  • Hd.dll
  • Osaxst0.dll
  • Osaxst1.dll

For more information about debugging and profiling, see Diagnostics and Debugging for Mobile and Embedded Development and Tools for Performance Tuning.


OEM Adaptation Layer

Other Resources

Community Additions