Files
MemRelay/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/Checkpoint 2026-08-24 09-44-26 UTC [db6a638039].md
T

39 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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: 启动命名管道监听`。