Changing CMOS RTC alarm settings winthin windows
-
Monday, April 16, 2012 5:29 AM
I am trying to use BIOS Wakup alarm to wake system from S5(Shutdown) state.
I can able to change the CMOS memory using 70-71h ports but windows is restoring the old values while shutdown.
Is there any way I can cange CMOS ram (RTC alarm) within windows ?
All Replies
-
Monday, April 16, 2012 6:03 AMOwner
call CreateWaitableTimer, http://msdn.microsoft.com/en-us/library/windows/desktop/ms682492(v=vs.85).aspx, in user mode. this will let the OS set the wakeup alarmd -- This posting is provided "AS IS" with no warranties, and confers no rights.
- Marked As Answer by Doron Holan [MSFT]Microsoft Community Contributor, Owner Monday, April 16, 2012 6:03 AM
- Unmarked As Answer by udax Monday, April 16, 2012 7:22 AM
- Proposed As Answer by Gary G. Little Tuesday, April 17, 2012 6:44 PM
- Marked As Answer by Doron Holan [MSFT]Microsoft Community Contributor, Owner Tuesday, April 17, 2012 7:22 PM
-
Monday, April 16, 2012 7:05 AM
It's working for sleep/hibernate(s3/s4) but not for shutdown(s5).
Is there any other alternative?
-
Monday, April 16, 2012 4:18 PMOwner
no, there is not. this is not something you should be setting from within the OSd -- This posting is provided "AS IS" with no warranties, and confers no rights.
- Marked As Answer by Doron Holan [MSFT]Microsoft Community Contributor, Owner Monday, April 16, 2012 4:18 PM
-
Tuesday, April 17, 2012 6:55 PM
How are you changing those IO ports? From with in your own application? Good trick, since an application does not have access to IO ports so you must be using some kind of portio or genio hack that supposedly gives applications access to IO space in the kernel. Good luck on that, since those have notoriously been non-functional for some time. Are you doing it from a driver? Again, good luck on that since those IO resources are not yours hence anything you do with them, if you are lucky, are simply ignored, so it's a given that Windows will change them back since they aren't yours to change in the first place. If you aren't lucky, since there is no way that you can synchronize your access with the legitimate access by the driver that does own that resource, you will eventually cause the system to panic and crash, which by convention is called a Blue Screen of Death (BSOD). The problem is that the poor dumb schmuck that was running your code will not see information pointing to your code as the failure point, but to the legitimate owner of the IO resource as the failing driver.
Gary G. Little NanoTelesis Systems, LLC
- Edited by Gary G. Little Tuesday, April 17, 2012 6:56 PM


