Holy cow, I wrote a book!
A customer observed that starting in Windows Vista,
the deadline for responding to the PBT_APMSUSPEND
message was reduced from twenty seconds to two seconds.
Their program needs more than two seconds to prepare for a suspend
and they wanted to know how they could extend the deadline.
The program communicates with a device, and if they don't
properly prepare the device for suspend,
it has problems when the system resumes.
No, you cannot extend the deadline for responding to the
The two second deadline is hard-coded; it is not configurable.
The whole point of reducing the deadline from twenty to two seconds
is to ensure that when
users press the Sleep button on their computers, the computer
actually goes to sleep reasonably promptly.
If there were a way to extend the deadline, then you're just
reintroducing the bad situation in Windows XP where the
user hits the Sleep button on the laptop, but the laptop just
sits there taunting you.
Meanwhile, the flight attendant is standing there getting angrier at
you for not putting your laptop away.
You tell the laptop to Sleep and toss it into your bag,
and then when you reach your destination,
you discover that your laptop is really warm, and the battery is dead.)
Besides, imagine if ten apps did this.
Your app asks for ten extra seconds, another app asks for another
next thing you know all the deadline extensions add up to five minutes.
The real solution is to fix the driver for this device so it can
prepare the device properly when it is told that the machine is
about to go into a low power state.
(The two-second limit applies to applications but not drivers.
At least not yet.)