Microsoft Azure 首席技术官兼著名 Windows 软件开发人员 Mark Russinovich 在社交平台上宣布,启动了一个名为 windows-drivers-rs 的新开源项目。
该项目可帮助开发人员使用 Rust 开发 Windows 驱动程序,旨在支持 WDM (Windows Driver Model) 和 WDF (Windows Driver Framework) 驱动程序开发模型。
当前版本的资源库主要由 Rust crates 组成,具体包括:
- wdk-build:用于配置 Cargo 构建脚本以进行 WDK 的绑定生成和下游链接的库。虽然此 crate 的编写目的是灵活地适应不同的 WDK 版本和不同的 WDF 版本,但目前仅针对 NI eWDK、KMDF 1.33、UMDF 2.33 和 WDM 驱动程序进行了测试。旧版 DDK 可能缺少链接器选项。
- wdk-sys:直接 FFI 绑定到 WDK 中可用的 API。这包括从bindgen中自动生成的 ffi 绑定,以及包括手动重新实现 bindgen 无法生成的宏。
- wdk:与 WDK 中可用的 API 的安全惯用绑定
- wdk-panic:使用 WDK 构建的程序的默认 panic 处理程序实现
- wdk-alloc:对使用 WDK 编译的二进制文件的分配支持
- wdk-macros:宏的集合,有助于更轻松地与 wdk-sys 的直接绑定进行交互。该 crate 通过wdk-sys重新导出,并且通常情况下 crates 不需要直接依赖wdk-macros
具体示例可查看Windows-rust-driver-samples。
值得注意的是,该项目仍处于早期阶段,不建议用于商业用途;但微软方面鼓励社区对该项目的实验、建议和讨论。在 windows-drivers-rs 的开发过程中,该公司将把 GitHub 讨论区作为与社区互动的主要形式。目前,windows-drivers-rs 项目已得到了微软开发人员 Melvin Wang 的支持。