我提出这个问题的背景是 - 我将笔记本电脑 (ASUS K75VJ) 的内存从 8GB 升级到了 16GB。现在启用了休眠模式 - 在我的 SSD 磁盘的 C: 驱动器上,hiberfil.sys 占用了 12GB 的磁盘空间(这确实不正常),此外,现在从休眠状态恢复需要更多时间(从 SSD 驱动器和 i7 CPU 恢复需要 30 多秒,通常接近 1 分钟 - 干净启动运行时间不到 15 秒)。
我非常确定我的笔记本电脑可以在睡眠状态下运行很长时间(大约一周...),这就是我禁用休眠模式的原因,但是在晚上手动将计算机置于睡眠状态后,我发现 Windows 在睡眠 4 小时 15 分钟后就自行关机了(根据 Windows 系统日志)。
启用休眠功能后,系统通常会在 4 小时 15 分钟后从睡眠状态唤醒并进入休眠状态,但似乎禁用休眠功能它反而会关闭,所有正在运行的应用程序都会失去它们的工作 - 这是绝对是错误的。
问题是:
- 是否可以在 4 小时 15 分钟后禁用该唤醒功能?
- 是否可以至少使间隔更合理一些,例如 12-24 小时?晚上将笔记本电脑置于睡眠状态后,我既不想通过启动干净的 Windows 会话从头开始,也不想等待 1 分钟从休眠状态恢复
- 有什么方法可以防止睡眠期间自动关机?
我的自我诊断目前显示如下:
从进入睡眠状态到自动唤醒关机/休眠的间隔约为 4 分 15 秒 - 从系统事件日志中复制/粘贴 3 条记录
睡眠时间:2016-05-12T14:33:50.019310900Z 唤醒时间:2016-05-12T18:45:34.841004500Z
睡眠时间:2016-05-12T09:14:51.924229400Z 唤醒时间:2016-05-12T13:26:50.888176200Z
睡眠时间:2016-05-11T22:02:26.772657800Z 唤醒时间:2016-05-12T02:14:14.856077600Z
唤醒来源:未知
自动从睡眠状态(状态 S3)唤醒以执行休眠状态(状态 S4)很可能是“设计使然”,尽管我找不到这方面的任何合理规格,最接近的规格在这里,但细节不够 -https://msdn.microsoft.com/en-us/library/windows/desktop/aa373229(v=vs.85).aspx
- 在我的配置中,我已将“睡眠”>“允许唤醒定时器”设置为“禁用” – 对于电源选项中的所有电源计划(我没有更改它们)
- 有些人建议在 BIOS 中禁用 S3 状态并启用 S2,但我的笔记本电脑中的 BIOS 没有任何相关配置 :(
附录:
- 看来在 Windows 系统日志中出现此“从睡眠状态恢复”事件后
来源:Power-Troubleshooter
消息:系统已从睡眠状态恢复...
... 7-8 秒后出现此事件(使用 '/hibernate on')
来源:Kernel-Power
消息:系统正在进入睡眠状态。睡眠原因:应用程序 API
...或(使用'/hibernate off'):
来源:内核电源
消息:内核电源管理器已启动关机转换。
不幸的是,这些信息也没有给我带来任何帮助。
更新:
我曾尝试采用一些肮脏的解决方法来解决这个问题——‘第一个’唤醒笔记本电脑并手动将其置于睡眠状态,但最终这种尝试没有奏效。
主要想法 - 通过系统事件日志中 Kerner-Power 事件 #42 上的计划任务捕获“睡眠”事件,并安排一项在 3 小时后唤醒笔记本电脑的操作(早于 Windows 唤醒休眠的时间),但...似乎当我按下“睡眠”按钮时,笔记本电脑的睡眠时间早于计划任务捕获该事件的时间 - 它实际上是在笔记本电脑手动唤醒“之后”触发的,而不是在睡眠之前
好吧,通过快捷方式进入睡眠状态不是问题,但是……似乎没有什么好办法让笔记本电脑再次进入睡眠状态。我尝试安排一项任务,该任务在唤醒后 5 分钟运行,并且如果笔记本电脑闲置 1 分钟(即我没有手动唤醒它),但该任务没有被触发(我已指定在 1 分钟不活动后启动屏幕保护程序)。这就是问题所在。
此外,这一切还存在一些缺陷:
如果启用了休眠功能,则让计算机进入睡眠状态的原始方法
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby
实际上是休眠。此问题已通过第三方工具“nircmd.exe standby”修复通过 SchTasks.exe 设置计划任务的时间有一些特殊之处 - 它的“日期”格式对于 SYSTEM (mm/dd/yyy) 和“当前用户”(dd/mm/yyyy) 是不同的,因此从命令行进行测试与从 SYSTEM 帐户下的计划任务运行不同。必须始终手动运行计划任务以测试结果。