2.0 KiB
2.0 KiB
title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | memory_type | project_id | usage_profile_id | status | revision | request_id | created_at | updated_at | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Checkpoint 2026-08-24 09:44:26 UTC [db6a638039] | checkpoint | main/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/checkpoint-2026-08-24-09-44-26-utc-db6a638039 | 648be109-d91c-4f4d-a336-c2f04432c3e3 | project | checkpoint | ea207d36-693c-4349-b3c8-7c40c8c889f5 | 7aee455b-24cc-4008-bdaf-443721e6f939 | active | 1 | winunlock-cpus-logon-fix-20260825 | 2026-08-24T09:44:26.393747+00:00 | 2026-08-24T09:44:26.393747+00:00 |
|
修复锁屏 LogonUI 场景兼容性(2026-08-25)
根因
VM 日志显示 SetUsageScenario 收到场景值 1(CPUS_LOGON),而旧代码只接受值 2(CPUS_UNLOCK_WORKSTATION),返回 E_NOTIMPL。因此 LogonUI 不调用 Advise,命名管道没有创建,client 31 次重试全部失败。手动解锁正常,说明账户密码本身无误。
修复
- provider 现在同时接受 CPUS_UNLOCK_WORKSTATION 和 CPUS_LOGON,保存场景并记录兼容日志。
- 改密/CredUI 等场景仍拒绝。
- 未收到管道凭据时仍不请求自动登录,避免冷启动/普通登录抢占默认磁贴。
- README 同步说明 Windows 版本差异。
- 新增场景判定单元测试。
验证
cargo test --release --target x86_64-pc-windows-msvc:16 个测试通过(common 13、provider 2、其余 0)。cargo build --release --target x86_64-pc-windows-msvc:成功,无警告。git diff --check:通过。- 提交:
a0f5ff0 fix: 兼容锁屏 LogonUI 场景。
VM 下一步
必须把新构建的 provider.dll、client.exe、setup.exe、winunlock-admin.exe 复制到 VM。推荐先在 VM 管理员终端运行 winunlock-admin.exe uninstall,重启 VM,再安装新产物;随后 setup 使用真实账户名(如 .+Administrator 的正确 PowerShell 字面量为 '.\Administrator' 或 ".\$env:USERNAME"),把计划任务设为未来 2-3 分钟,Win+L 后检查 provider.log 是否出现 Advise: 启动命名管道监听。