For our Windows Mobile solution we are using the OpenNETCF.WindowsCE.Suspend method to suspend the device after a period of time. This is instead of using the OS timeout (HKLM\System\CurrentControlSet\Control\Power\Timeouts\BattSuspendTimeout). The reason for this is if the device is suspended by the OS or the power button is pressed to suspend the device then the device seems to wake up of its own accord however if the OpenNETCF.WindowsCE.Suspend method is used, then the device will remain asleep until the power button is used to wake it.
Would someone be able to confirm, either way, whether an OpenNETCF.WindowsCE.Suspend puts the device in the same state as the device sleeping of its own accord via the BattSuspendTimeout?
I dont have the source code of OpenNetCF.WindowsCE to say for sure what is the difference. I would look at the code or use my power monitor tool to see which exact Power Mode is entered by OpenNetCF and BattSuspendTimeout. As you know, there are several Power Modes defined: http://msdn.microsoft.com/en-us/library/aa929251.aspx
My power monitor is at https://github.com/hjgode/logging_ce/tree/master/PowerMsgLog.
If ctacke is reading your post, he may say what the exact code is behind OpenNetCF.WindowsCE...
OK, I digged it:
Now we still do not know, which method is used:
or
Please try my powerMsgLog tool.
I see these difference:
OpenNetCF:
device is 'off'
Power button:
device is 'off'