| name | windows-rust-dev |
| description | Windows 系统编程 in Rust — windows crate COM/注册表/任务计划/签名校验。 |
Windows Rust 系统编程
Windows 平台 Rust 开发(非 Tauri UI 部分):windows crate、winreg、COM 接口、WinVerifyTrust。
平台隔离(首要规则)
验证阶梯:交叉编译 ≠ 能跑(真机 CI 是最后一道)
windows crate 0.62 关键坑
- feature 门控严格:未启用的模块在源码里存在但构建时不可见。常用:
Win32_System_TaskScheduler + Win32_System_Com + Win32_System_Variant + Win32_System_Ole(任务计划)
Win32_Security_WinTrust + Win32_Security_Cryptography(WINTRUST_DATA 结构体被后者 gate!)
Win32_UI_Shell(SHGetFolderPathW)、Win32_Foundation(HWND/INVALID_HANDLE_VALUE)
- COM 接口是高级封装,不是 raw 绑定:方法签名与经典 C 版不同,写前必读 registry 缓存里目标模块的 mod.rs 源码(
~/.cargo/registry/src/.../windows-0.62.x/src/Windows/Win32/.../mod.rs),确认实际签名,别凭文档猜。
let...else 配 unsafe block 必须加括号:let Ok(x) = (unsafe { f() }) else { ... };
- 超范围字面量:
0x800B0100(TRUST_E_NOSIGNATURE)要写成 0x800B0100u32 as i32。
各 API 实测形态(0.62.2)
见 references/windows-crate-0.62.md——含 TaskScheduler COM、WinVerifyTrust、SHGetFolderPathW、winreg 的逐条签名和用法。
参考
taskschd crate 已死(2023 停更)——任务计划用 windows crate 官方 COM 绑定。
- 参考项目:BootKeeper
crates/core/src/windows/(registry/startup_folder/scheduled_task/signature)。