There are many occasions where you want to implement some functionality in a Kernel IOCTL or OEM kernel callback but you can't call the normal Windows CE API because you're in kernel space. So tasks such as setting or reading registry entries, creating events and signalling processes etc can't be done... or can they..?
Some of the basic API functions for this support are available but the functions have a prefix NK or K, for instance:
NKSleep()
NKRegCloseKey()
NKRegCreateKeyExW()
NKRegOpenKeyExW()
etc
Note that not all of these are documented, so for more information see:
\WINCE600\PUBLIC\COMMON\OAK\INC\nkexport.h
More advanced functions are available in:
\WINCE600\PRIVATE\WINCEOS\COREOS\NK\INC\syncobj.h
This is the publicly available Windows CE private kernel code, and includes event, Semaphores and even message queues!:
NKSetEvent
NKPulseEvent
NKResetEvent
NKCreateMsgQueue
etc!
So don't use flags and share memory, do it properly with some thread and process intercommunication! :)