Originally Posted by jwoegerbauer
~150 views, no reply: I'm disappointed. Really noone?
probably because your request is far away from the forum purpose, as Windows Mobile isn't windows ce. The only common part is the kernel.
Windows Mobile is based on Windows CE 5 kernel.
For Windows CE 6, the kernel has been reworked by MSFT and there is a clear split between the kernel mode and user mode memory area. So kernel is running in kernel space, and apps run in user mode area.
When calling KernelIoControl from an app, the thread has to migrate from the user mode to the kernel, so some validation is performed by the system before migrating, and especially the kernel calls. So you should find on your system a oalctl.dll which filter the allowed iocontrols calls from application.
One more point is the power management on the device is managed by the power manager, skipping calls to the power manager for power transistion will impact on the overal system power. The PM uses the registry to get its configuration, this config set how the system behave for the various system power state. Each driver power state is defined for each system power state.
You can override this from an application by requesting specific porwer state for a specific driver using SetPowerRequirement API.
Knowing this then you can implement your own app.