chore: 导入旧记忆备份供恢复

This commit is contained in:
2026-09-23 22:38:40 +08:00
parent 5313fcee7a
commit 6a6a895eaf
638 changed files with 29816 additions and 1 deletions
@@ -0,0 +1,40 @@
---
title: Checkpoint 2026-08-24 09:44:26 UTC [db6a638039]
type: checkpoint
permalink: main/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/checkpoint-2026-08-24-09-44-26-utc-db6a638039
stable_id: 648be109-d91c-4f4d-a336-c2f04432c3e3
scope: project
memory_type: checkpoint
project_id: ea207d36-693c-4349-b3c8-7c40c8c889f5
usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939
status: active
revision: 1
request_id: winunlock-cpus-logon-fix-20260825
created_at: '2026-08-24T09:44:26.393747+00:00'
updated_at: '2026-08-24T09:44:26.393747+00:00'
tags:
- bugfix
- vm-test
- credential-provider
---
# 修复锁屏 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: 启动命名管道监听`。