--- 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 project_id: ea207d36-693c-4349-b3c8-7c40c8c889f5 memory_type: checkpoint status: active revision: 1 restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2 created_at: '2026-09-23T15:11:43.529642+00:00' updated_at: '2026-09-23T15:11:43.529718+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: 启动命名管道监听`。