微軟開源 Windows-Drivers-rs,用 Rust 開發 Windows 驅動程序
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 的支持。