Answered 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 AM
    Owner
     
     Answered
    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 alarm

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

  • 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 PM
    Owner
     
     Answered
    no, there is not.  this is not something you should be setting from within the OS

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

  • 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