about windows CE 3.0

These notes relate mostly to sa1100 based devices
the paths refer to files in the platform builder and shared source for windows ce 3.0. Many cpu dependend files can be found in a Board Support Package, the wince420 emulation edition has sources to many more tools.

how does it boot

how are systemcalls implemented

kernel datastruct

thread handles and id's

In windows CE 3.0 there are no functions to obtain a threadhandle from a threadid. (threadid's can be found by iterating over a toolhelp-snapshot (created with CreateToolhelp32Snapshot) with Thread32First / Thread32Next )
fortunately the handle and id are always exactly the same. (as can be seen at the bottom of DoCreateThread in PRIVATE/WINCEOS/COREOS/NK/KERNEL/SCHEDULE.C

handles

sources

KernelIoControl

This is systemcall SH_WIN32 ( 0 ), function 99 ( OEMIoControl )
which can be found in PLATFORM/EMULATOR/KERNEL/HAL/oemioctl.c

this function is quite different for each OEM!