Call KernelIoControl in user space in WINCE6.0

WINCE6.0 is very different with the old versions. It more likes a desktop OS.
Drivers are running in kernel mode, programs run in user mode.
And many functions maybe just only be used in driversno longer can called in user mode,
for example, InterruptInitialize.
User mode codes can't access a virtual address directly.
Some functions are different in user mode and kernel mode. for example:

KernelIoControl, in kernel mode, it's linked to KernelIoctl, while in user mode it's EXTKernelIoctl.
And KernelIoControl in user mode only support a few IOCTLs, to support more IOCTLs, we must modify
the codes at: public\common\oak\oalioctl

原文地址:https://www.cnblogs.com/ceblog/p/1772346.html