Scheduled tasks will not wake Windows 8.1 from sleep


Recommended Posts

I use 8.1 in my HTPC, and first noticed this when a few of my scheduled recording failed to record after the computer went to sleep. I've since tried to create my own custom tasks and cannot get anything to successfully wake the computer (other than direct input from mouse etc). This use to work just fine on the same hardware when I had Windows 7. I've tried everything to fix it and am wondering if it could be a fundamental hardware incompatibility?

 

My hardware:

Foxconn A88GMV

AMD Athlon II X3 Rana 455

WD 500GB

Seagate 2TB

nvidia GT610

Corsair CX430 430W PSU

 

I have gone into power options and made sure wake timers are enabled. On my scheduled task, I have it set to wake the computer. The task will run just fine if the computer is not asleep. Some of the troubleshooting I've tried so far:

 

- Changed the sleep state in the BIOS from S3 to S1 ( my only 2 options)

- On S3, tried with hybrid sleep enabled/disabled

- Updated BIOS to latest version

- Updated AMD 880G chipset to latest drivers

- Tried with SATA in both AHCI mode and Native IDE

- Downloaded MCE Standby Tool, which I saw helped a lot of other people. No change

- My windows account DOES use a password

- Set it to not require password when resuming from sleep

 

Only other thing I've found is that enabling HPET in the BIOS can help, but I see no options for this on my model. Is it possible that having a scheduled task wake the computer just isn't compatible with Windows 8 on my setup?

 

 

 

Link to comment
Share on other sites

It probably is a HPET issue. Try the following to disable HPET in Windows and then reboot:

bcdedit /deletevalue useplatformclock

Link to comment
Share on other sites

It probably is a HPET issue. Try the following to disable HPET in Windows and then reboot:

bcdedit /deletevalue useplatformclock

 

I forgot to include that I tested the system timer with something called wintimertest I think, where "QueryPerformanceFrequency" was reported as 3-4 MHz, even after trying the command bcdedit /set useplatformclock true. Does this mean my system does not even support HPET?

Link to comment
Share on other sites

I forgot to include that I tested the system timer with something called wintimertest I think, where "QueryPerformanceFrequency" was reported as 3-4 MHz, even after trying the command bcdedit /set useplatformclock true. Does this mean my system does not even support HPET?

 

Possibly, that's part of the reason I'm telling you to disable it in the OS just to be sure it isn't breaking because it is enabled there but doesn't exist or the other possibility that it is a faulty implementation on your board. It is actually a known issue even in Linux where ACPI won't wakeup the computer with HPET enabled on some boards and kernel combinations -- so it is no stretch that it could occur here.

Link to comment
Share on other sites

Possibly, that's part of the reason I'm telling you to disable it in the OS just to be sure it isn't breaking because it is enabled there but doesn't exist or the other possibility that it is a faulty implementation on your board. It is actually a known issue even in Linux where ACPI won't wakeup the computer with HPET enabled on some boards and kernel combinations -- so it is no stretch that it could occur here.

I tried what you said and rebooted, still no luck. The query frequency is reported as 3.59 Mhz with useplatformclock both off and on.

I didn't have time to test this extensively, so it may be a fluke, but when I enabled a bios option called 'enable rtc alarm' I was able to get my test sheduled task to wake the computer, but only if it was 1-2 minutes later. Anything more would break it again.

Really seems like it's a Windows 8.1 issue since it worked on 7 and 8 and I didn't have to fiddle with any of this

Link to comment
Share on other sites

Can you create a simple task (open notepad or something on wake) that reproducibly fails, export it, and post the XML file here? Also, have you tried enabling logging for the failing task and seeing whether it spits out information on waking?

Link to comment
Share on other sites

I have the following other possible switches to try. I don't guarantee any of them work though. Does anyone know if any timer related things changed from 8 to 8.1? My guess is that the 1-2 minute sleep worked because it hadn't yet turned off completely.

 

disabledynamictick [ yes | no ] //Enables and disables dynamic timer tick feature. 

useplatformclock [ yes | no ] //Forces the use of the platform clock as the system's performance counter.

uselegacyapicmode [ yes | no ] // Used to force legacy APIC mode, even if the processors and chipset support extended APIC mode.

Link to comment
Share on other sites

Can you create a simple task (open notepad or something on wake) that reproducibly fails, export it, and post the XML file here? Also, have you tried enabling logging for the failing task and seeing whether it spits out information on waking?

Here's the XML export of the test task I've been using. By enabling logging, do you mean task history? Looking at that, there are no errors. I have the task set to launch immediately if a scheduled start is missed, so as soon as I manually wake the computer it'll run. The history data just says task was triggered by a time condition, and has completed successfully

<?xml version="1.0" encoding="UTF-16"?>

-<Task xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task" version="1.4">


-<RegistrationInfo>

<Date>2014-01-02T20:41:09.5504415</Date>

<Author>HTPC\Chris</Author>

</RegistrationInfo>


-<Triggers>


-<TimeTrigger>

<StartBoundary>2014-01-02T21:18:00</StartBoundary>

<Enabled>true</Enabled>

</TimeTrigger>

</Triggers>


-<Principals>


-<Principal id="Author">

<UserId>HTPC\Chris</UserId>

<LogonType>InteractiveToken</LogonType>

<RunLevel>HighestAvailable</RunLevel>

</Principal>

</Principals>


-<Settings>

<MultipleInstancesPolicy>Parallel</MultipleInstancesPolicy>

<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>

<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>

<AllowHardTerminate>true</AllowHardTerminate>

<StartWhenAvailable>true</StartWhenAvailable>

<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>


-<IdleSettings>

<StopOnIdleEnd>true</StopOnIdleEnd>

<RestartOnIdle>false</RestartOnIdle>

</IdleSettings>

<AllowStartOnDemand>true</AllowStartOnDemand>

<Enabled>true</Enabled>

<Hidden>false</Hidden>

<RunOnlyIfIdle>false</RunOnlyIfIdle>

<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>

<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>

<WakeToRun>true</WakeToRun>

<ExecutionTimeLimit>P3D</ExecutionTimeLimit>

<Priority>7</Priority>

</Settings>


-<Actions Context="Author">


-<Exec>

<Command>"C:\Program Files (x86)\Internet Explorer\iexplore.exe"</Command>

</Exec>

</Actions>

</Task>
Link to comment
Share on other sites

Here's the XML export of the test task I've been using. By enabling logging, do you mean task history? Looking at that, there are no errors. I have the task set to launch immediately if a scheduled start is missed, so as soon as I manually wake the computer it'll run. The history data just says task was triggered by a time condition, and has completed successfully

Yeah, that's what I meant by logging.

I tried reproducing your task using my own typical settings. The only differences are:

 

<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">

...

<Principals>
    <Principal id="Author">
      <UserId>BABEL\User</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>

...

<StartWhenAvailable>false</StartWhenAvailable> (probably not important)
Do you stick with the default Configure for settings? I set mine to Windows 8.1, though I don't know if that makes a functional difference or not.
Link to comment
Share on other sites

Yeah, that's what I meant by logging.

I tried reproducing your task using my own typical settings. The only differences are:

 

<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">

...

<Principals>
    <Principal id="Author">
      <UserId>BABEL\User</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>

...

<StartWhenAvailable>false</StartWhenAvailable> (probably not important)
Do you stick with the default Configure for settings? I set mine to Windows 8.1, though I don't know if that makes a functional difference or not.

 

Mine is also set to 8.1. It is my understanding that the different configuration modes make no difference to a manually created task. Just for fun I set it to Windows 7, didn't help though

Link to comment
Share on other sites

I have the following other possible switches to try. I don't guarantee any of them work though. Does anyone know if any timer related things changed from 8 to 8.1? My guess is that the 1-2 minute sleep worked because it hadn't yet turned off completely.

 

disabledynamictick [ yes | no ] //Enables and disables dynamic timer tick feature. 

useplatformclock [ yes | no ] //Forces the use of the platform clock as the system's performance counter.

uselegacyapicmode [ yes | no ] // Used to force legacy APIC mode, even if the processors and chipset support extended APIC mode.

 

Thanks for the suggestions - I tried them all, with reboots in between, still not working :(

Link to comment
Share on other sites

Only thing I had was try doing Run whether user is logged in or not, and don't check Run with highest privileges.

I've tried every combination of options, they all work fine if the computer isn't sleeping, otherwise no-go. I'm just gonna say it's not possible for me

 

 

I'm out of ideas then unfortunately :-)

 Me too, thanks for the help. Seems like if your mobo doesn't specifically support HPET options then this isn't possible in Win 8.1

Link to comment
Share on other sites

 

I've tried every combination of options, they all work fine if the computer isn't sleeping, otherwise no-go. I'm just gonna say it's not possible for me

 

 

 Me too, thanks for the help. Seems like if your mobo doesn't specifically support HPET options then this isn't possible in Win 8.1

 

 

No idea if that is the case. It could be just an issue with particular mobos or drivers in 8.1 also. 

Link to comment
Share on other sites

This topic is now closed to further replies.