睡眠后自动关机的排查

睡眠后自动关机的情况罗列

电源休眠功能进入睡眠下次唤醒的状态是否发生自动关机故障
插电休眠on超时自动睡眠从休眠恢复没有
手动进入睡眠从休眠恢复没有
休眠off超时自动睡眠从睡眠恢复没有
手动进入睡眠从睡眠恢复没有
电池休眠on超时自动睡眠从休眠恢复没有
手动进入睡眠从休眠恢复没有
休眠off超时自动睡眠从关机状态全新启动
手动进入睡眠从关机状态全新启动
  • 自动关机现象描述
    • BatteryReport.html,14:09:33    Connected standby,14:25:00    Suspended
    • 睡眠先standby,再变为suspend,就像关机了一样,唤醒时,相当于重新开机
    • 其它条件:休眠关闭,全新正常电池,电源模式睡眠不会suspend唤醒正常

可能原因的排查

  • 虚拟页面是关闭的?
    • 开启2G~16G后,问题依旧
  • 显卡驱动是否最新?
    • 已最新后,问题依旧
  • 电源设置>空闲复原>启用禁用深度睡眠设置
    • 改为禁用后,问题依旧
  • 使用windows默认的平衡方案
    • 切换为平衡方案,并还原为默认设置,问题依旧
  • 超时休眠全部改为从不休眠
    • 此设置修改后,问题依旧
  • 电池关键电量操作设置将休眠改为关机
    • 修改后,问题依旧
  • 芯片组驱动问题
  • BIOS reset
    • 修改后,问题依旧
  • 电源管理设置超时休眠时间改为999999
    • 修改后,问题依旧
  • 修改待机预算百分比1%为10%
 

trae的分析

  • 扫描AC和DC所用的电源方案
    • 针对休眠关闭时,涉及可能触发休眠的任何设置项

      # 定义重点关注的设置 GUID (不论名称如何,GUID 是唯一的)
      TARGET_SETTINGS = {
          "9d7815a6-7ee4-497e-8888-515a05f02364": "在此时间后休眠 (Hibernate After)",
          "f15576e8-98b7-4186-b944-eafa664402d9": "待机保留时间 (Standby Reserve Time)",
          "82011705-fb95-4d46-8d35-4042b1d20def": "用户状态预测模式 (User Presence Prediction)",
          "a4b195f5-8225-47d8-8012-9d41369786e2": "允许使用系统所需的策略 (System Required Policy)",
          "7bc4a2f9-d8fc-4469-b07b-33eb785aaca0": "无人参与系统睡眠超时 (Unattended Sleep Timeout)",
          # 补充可能的非传感器输入超时 (通常较少见,尝试通过关键词匹配,但也列出可能的 GUID)
          "5ca83367-6e45-459f-a27b-476b1d01c936": "非传感器输入空闲超时 (Non-Sensor Input Idle Timeout)",
          # 补充混合睡眠,以防万一
          "94ac6d29-73ce-41a6-809f-6363ba21b47e": "混合睡眠 (Hybrid Sleep)"
      }
  • 逐项分析
    • 在此时间后休眠 (Hibernate After):值都是 0,从系统角度: 不会因为“睡眠超时”而转 S4 休眠
    • 待机状态下的网络连接性:值都是 0,代表“禁用该策略”
    • 用户状态预测模式 (User Presence Prediction):DC=1 意味着:电池模式下,该策略是 开启 的。系统认为你“离开”后,会依据“非传感器输入超时”、“无人参与睡眠超时”等计时器触发更 aggressive 的节能动作。- 合盖放包、长时间无人操作、电池供电 -> 对系统来说完全符合“用户离开、设备不在使用”的特征。
      - 再叠加下面几个超时参数,就有可能被驱动到某种“保电+深度休眠/关机”的路径。
    • 允许使用系统所需的策略 (System Required Policy):值都是 0,有程序请求“保持唤醒” ,电源照样睡眠。
    • 无人参与系统睡眠超时 (Unattended Sleep Timeout):值都是120秒,用来控制 在“无人参与/服务模式”等情形下,从“点亮但无人操作”到“进入睡眠”需要等待多久。主要用于管理 Windows Update / 安装补丁后自动重启再进入登录界面无人操作超时,某些后台任务跑完后系统自动进入“无人参与状态”超时
    • 合上盖子操作  (Close Lid Operation):DC=1 ,合盖睡眠。
    • 混合睡眠 (Hybrid Sleep):值都是 0,混合睡眠全关闭,这反而是好事(致敬峰哥),避免了 “S3 + S4 同步写盘” 的复杂行为,不太可能是你这次问题的源头。
    • 待机保留时间(Standby Reserve Time):DC: 600 秒,这通常是 Modern Standby 里一个关键的保电策略:- 在待机若干分钟后,系统进入“Standby Reserve”或更深的电源状态。合盖 → 进入待机 → 10 分钟后触发保留策略;如果休眠被禁用或驱动不兼容,这一步失败就有可能转成“直接断电”,你看到的就是 6008 自动关机
    • 非传感器输入状态超时(Non-Sensor Input Idle Timeout):DC: 300 秒,是从“有非传感器输入”到“非传感器 idle 状态”的状态机切换时间,可以理解成: “电池下,5 分钟无人输入,系统把你认定为彻底 idle,下一步看各类睡眠/保留计时器来动作”。
  • 结论
    • 不是显式的 Hibernate After 在搞事 (它已经是 0)
    • 有嫌疑的是 Modern Standby + 用户存在感知 + 待机保留 + 无人参与超时 的组合:电池合盖无输入下进入standby,在N分钟后进入保留阶段,尝试休眠,休眠失败后直接掉电关机(6008), 没有42/107的过程
    • 故障链路:电池 + 合盖 → 进入 Modern Standby → 过一段时间触发 Standby Reserve / 省电策略 → 尝试休眠(S4)→ 因为休眠被关闭或失败 → 直接掉电 → 只留下 6008,没有 42/107

解决

  •