- Thread starter
- #151
That seems to be the same problem WaffleMkrMan has. Mpsh has no time to finish the suspend jobs. Windows vista froces the system to suspend.
Today i found the answer:
"Microsoft Windows Vista ecosystem significant changes to power management infrastructure & functionality as compared to Windows XP and earlier. Application developers must be aware of the changes to power management in Windows Vista, and design their applications accordingly. From the developer's perspective the points which needs to be taken care of is, Changes to Sleep and Resume Events. In Windows Vista, applications can no longer block in-progress sleep transitions. The PBT_APMQUERYSUSPEND event is not delivered to applications in VISTA and hence applications cannot deny/abort the suspend operation. As per Microsoft's recommendation that applications should not block in-progress sleep transitions on any version of Windows. In VISTA suspend transitions is pretty fast to increase the performance and hence applications handling the PBT_APMSUSPEND event must process it within 2 seconds. Applications have 2 seconds to finish processing the PBT_APMSUSPEND event before Windows continues with the sleep transition, If an application has not returned from the PBT_APMSUSPEND event after 2 seconds, the system will go ahead to sleep state and any remaining processing completes after the system resumes from the sleep state."
This means that there is no chance to stop Vista from suspending or even request some more time to do all the suspend jobs. It is different with XP. In XP you have a chance to get ready before suspend.
I never realized that problem because TVService stopped very quick on my development maschine. So i increased the delay for stopping TVS on suspend and found that my Vista machine does the same as yours - it is suspended during the suspend jobs. They were finished on wakeup.
This is bad news. NO WAY TO DO LONG TERM JOBS ON SUSPEND WITH VISTA.
It could be a solution to kill TVS instead of stopping it. I will add a property to the TVS and MP stop jobs.
Wait for new beta plz.
Today i found the answer:
"Microsoft Windows Vista ecosystem significant changes to power management infrastructure & functionality as compared to Windows XP and earlier. Application developers must be aware of the changes to power management in Windows Vista, and design their applications accordingly. From the developer's perspective the points which needs to be taken care of is, Changes to Sleep and Resume Events. In Windows Vista, applications can no longer block in-progress sleep transitions. The PBT_APMQUERYSUSPEND event is not delivered to applications in VISTA and hence applications cannot deny/abort the suspend operation. As per Microsoft's recommendation that applications should not block in-progress sleep transitions on any version of Windows. In VISTA suspend transitions is pretty fast to increase the performance and hence applications handling the PBT_APMSUSPEND event must process it within 2 seconds. Applications have 2 seconds to finish processing the PBT_APMSUSPEND event before Windows continues with the sleep transition, If an application has not returned from the PBT_APMSUSPEND event after 2 seconds, the system will go ahead to sleep state and any remaining processing completes after the system resumes from the sleep state."
This means that there is no chance to stop Vista from suspending or even request some more time to do all the suspend jobs. It is different with XP. In XP you have a chance to get ready before suspend.
I never realized that problem because TVService stopped very quick on my development maschine. So i increased the delay for stopping TVS on suspend and found that my Vista machine does the same as yours - it is suspended during the suspend jobs. They were finished on wakeup.
This is bad news. NO WAY TO DO LONG TERM JOBS ON SUSPEND WITH VISTA.
It could be a solution to kill TVS instead of stopping it. I will add a property to the TVS and MP stop jobs.
Wait for new beta plz.