BSP Data Structures (Windows Embedded CE 6.0)
In earlier versions of Windows Embedded CE, the kernel, OEM adaptation layer (OAL), and Kernel Independent Transport Layer (KITL) were built into a single executable. This enabled other components to be referenced simply by doing an
extern declaration. For Windows Embedded CE 6.0, you can no longer use an
extern declaration because the kernel, OAL, and KITL are separated. In the kernel, you can no longer use
extern DWORD varX to access a variable in the OAL.
To access shared information, you can use the following structures to share information between the kernel and the OAL.
This structure defines all the functions that the OAL must implement for BSP migration, and all the variables that it needs to define.
This structure defines all the functions and variables that the kernel exports. The OAL can only access kernel functions using this global structure.
On kernel startup, the OS finds the OAL entry point and then calls the entry function to exchange the pointer with the global block. Once this step is done, the kernel has all the information it needs from the OAL and the OAL then has access to all the exports from the kernel.