Check the reason the computer resumed from hibernation
I am creating an application that puts the computer in hibernation for a few hours or even a full week (Using a WaitableTimer and WaitForSingleObject). There are three reasons why the computer could wake-up The waitable timer expired and the computer resumes as scheduled. The user presses the power button which resumes the computer. The computer turns on unexpectedly. The first two reasons are perfectly acceptable, they are what the system is designed for. The third reason is of course not so nice. I would like to be able to differentiate between these three reasons for turning on. Is there