【亲测免费】 使用Rust打造Windows驱动程序:Rust Driver Samples完全指南

使用Rust打造Windows驱动程序:Rust Driver Samples完全指南

安装指南

必要条件

  1. 建立EWDK开发环境

    • 访问微软官方指南安装最新版企业级Windows驱动开发套件(EWDK),或直接下载ISO映像文件至C盘根目录下的 ewdk 文件夹,并通过命令行启动:c:\ewdk\LaunchBuildEnv.cmd
    • 使用Windows Package Manager (winget) 安装LLVM的Clang编译器:winget install LLVM.LLVM
  2. 安装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
      
  3. 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

构建与测试

  1. 构建项目

    • 从EWDK环境的命令提示符运行:
      cargo make
      

    成功后,INF文件和CAT文件将在Package文件夹中生成。

  2. 安装驱动程序

    • 需一次性设置PC,包括暂停BitLocker,关闭Secure Boot,启用测试签名,重启电脑。
    • package文件夹和相应的devgen.exe复制至测试机器,安装证书,并使用pnputil.exe安装INF文件。
    • 利用devgen.exe创建软件设备。
  3. 测试驱动程序

    • 使用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),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹良杉Dexter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值