2019/04/19, 我新加了一个 M.2 的固态, 现在机器上挂了三个硬盘. 两个 SATA, 一个 M.2.
2019/04/20 上午, 我迁移了原来固态上的系统到了新加固态上. 并将新硬盘作为优先启动盘.
2019/04/20 中午, 我收到了这样一个补丁
Intel Corporation - Display - 11/18/2018 12:00:00 AM 25.20.100.6373
一个去年十一月的补丁现在才推过来很奇怪了.
我选择了更新, 之后出现了我在 1709/1803 经常见到的关机后自动重启和睡眠后自动开机, 之前几次都是找找事件管理器, 看下哪个设备唤醒了计算机, 禁掉就行了. 然而这次 Bug 10 给我了一击.
关键事件的常规描述是:
用户模式进程尝试通过调用 SetSuspendState 或 SetSystemPowerState API 更改系统状态。
没头没尾的. 转过去看看事件的 XML
1 | <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> |
<DataName=”ApiCallerName”>\Device\HarddiskVolume1\Windows\System32\RuntimeBroker.exe
ApiCallerName 的路径是 "\Device\HarddiskVolume1", 是新硬盘引起的吗? 暂时不可知. "\Device\HarddiskVolume1" 应该就是指的当前的 C 盘. 为什么不直接写 C, 而是用了硬盘描述呢?
引起事件的程序是 RuntimeBroker.exe , 查一下, 有说要关通知的, 有说改注册表的, 改通知无效, 改注册表他们说是改
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBroker
但是很遗憾, 我这里没有这个路径, 倒是有这个
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBrokerSvc
成吧, Start 从 3 改成 4 表示禁止, 重启, 正常重启了, 睡眠, 也正常睡眠了. 之后就开始叫人揪心了.
- 输入法框消失, 设置中选择输入法显示只能运行在桌面模式
- 可以通过 Win 键唤出开始菜单, 但是之后的任何以此为焦点的输入都无效, 比如 Tab/上下左右/字母/数字, 包括再按 Win 键关掉开始菜单
- 快捷键仍然存在(Win + R), 但是设置里的按键也全部失效.
暂时怀疑因为 RuntimeBroker 是用于 Windows10 权限管理的, 把这项服务 ban 掉后, 有一些应用无法获取到某些权限了, 因而表现为 UWP 应用无法输入. 但是这个进程为什么会禁止我关机和睡眠, 而且关键在用户态进行, 这就很奇怪了.
暂时没空折腾了, 只好先放弃睡眠功能, 每次要关机就选择重启之后进入 BIOS 电源按钮关机咯.
Windows 1809, 17763.437, 教育版
19/05/03补充
上面那行中文描述应该是中文互联网上首次出现了, 现在搜索错误描述只有这篇文章一个.
我已经尝试过移除RuntimeBroker.exe
了, 移除成功后同样出现上述禁用服务的错误, 通过 Alt+F4 睡眠时, 这次的ApiCallerName
就变成了\Device\HarddiskVolume1\Windows\System32\winlogon.exe
, 这个可没法动, 而且之后我恢复了RuntimeBroker.exe
, 现在睡眠的时候会有两个事件了, 一个RuntimeBroker.exe
, 之后winlogon.exe
.
我猜想是explorer.exe
发出睡眠信号后其他程序唤醒了计算机, 如果有人有空的话, 可以试着写一个内核应用, ban 掉这两个进程在短时间内的唤醒信号, 或者如果二者会一直唤醒的话, 可以定期自行唤醒, 不过还是不如微软自带的睡眠啊, 想自行监控睡眠期间的按键鼠标动作着实有点难.
等五月底的 1903 吧
06/21:
六月底还没有给我推新版本, 终于用了易升手动更新到了 1903, 问题一如之前莫名其妙地解决
从我的知乎文章搬运