使用Rust打造Windows驱动程序:Rust Driver Samples完全指南
安装指南
必要条件
-
建立EWDK开发环境:
- 访问微软官方指南安装最新版企业级Windows驱动开发套件(EWDK),或直接下载ISO映像文件至C盘根目录下的 ewdk 文件夹,并通过命令行启动:
c:\ewdk\LaunchBuildEnv.cmd
。 - 使用Windows Package Manager (
winget
) 安装LLVM的Clang编译器:winget install LLVM.LLVM
。
- 访问微软官方指南安装最新版企业级Windows驱动开发套件(EWDK),或直接下载ISO映像文件至C盘根目录下的 ewdk 文件夹,并通过命令行启动:
-
安装Rust:
- 对于x64系统,可以直接通过PowerShell脚本安装Rust:
Invoke-RestMethod -Uri "https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe" -OutFile "$env:USERPROFILE\Downloads\rustup-init.exe" & "$env:USERPROFILE\Downloads\rustup-init.exe" -y
- 对于x64系统,可以直接通过PowerShell脚本安装Rust:
-
Rust额外配置:
- 运行命令安装
cargo-make
及TLS相关依赖(注意ARM64限制):cargo install cargo-make --no-default-features --features tls-native
- 推荐安装额外的工具提高开发便利性,如
cargo-expand
,cargo-edit
,cargo-workspaces
。
- 运行命令安装
Rust Driver Samples项目准备
执行以下命令完成项目初始化配置:
cargo install cargo-make --no-default-features --features tls-native
确保注意到ARM64支持的特别注意事项,暂时禁用TLS特性直至官方支持。
项目使用说明
文档查阅
本地生成完整文档,包括私有项文档,通过命令:
cargo doc --document-private-items --open
构建与测试
-
构建项目:
- 从EWDK环境的命令提示符运行:
cargo make
成功后,INF文件和CAT文件将在
Package
文件夹中生成。 - 从EWDK环境的命令提示符运行:
-
安装驱动程序:
- 需一次性设置PC,包括暂停BitLocker,关闭Secure Boot,启用测试签名,重启电脑。
- 将
package
文件夹和相应的devgen.exe
复制至测试机器,安装证书,并使用pnputil.exe
安装INF文件。 - 利用
devgen.exe
创建软件设备。
-
测试驱动程序:
- 使用DebugView捕捉内核输出,或在WinDbg中调试。
- 测试应用通过命令行运行,如
cargo run --bin echoapp
可测试同步操作,添加-Async
参数进行异步测试。
API使用文档
Rust Driver Samples项目结合了windows-drivers-rs
库,为开发者提供了API接口,这些接口设计遵循Rust的安全性和异步编程原则。具体的API细节需参考项目的源码注释和生成的文档。重要的是理解如何与Windows的内核模式驱动框架(WDF)交互,其中可能涉及“unsafe”块以适配原生WDF调用,保证在保持Rust风格的同时,兼容现有Windows驱动编程标准。
总结
Rust Driver Samples为希望利用Rust语言的强大特性的开发者开辟了一条通往Windows驱动程序开发的新道路。通过遵循本文档中的步骤,开发者可以迅速搭建环境,构建和测试自己的驱动程序,享受Rust带来的安全性、效率以及现代编码体验。记住,在探索驱动开发的旅程中,充分利用文档和社区资源,将使你的开发之路更为顺畅。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考