DriverSample

runwu2204 Lv6

参考

microsoft/Windows-rust-driver-samples: Rust port of the official Windows Driver Samples on Github. Leverages windows-drivers-rs

wdk

使用wdk即可,ewdk没太大必要,需要注意自己使用的wdk对应的msvc链子的版本

LLVM

安装完成后将LLVM路径/bin放入LIBCLANG_PATH环境变量中

测试的时候在根目录下cargo make即可

出现以下问题

image-20241026013233394

代表你有多个kit版本,主要需要将Windows Kits\10\LibWindows Kits\10\Tools出现的最高版本一样,否则他会在另外一个地方找不到对应文件的存在

例如一个10.0.26一个10.0.22,他会直接在两个地方找10.0.26,如果没找到就会报错

需要注意对应wdk安装的版本

快速创建项目

工具cargo-generate

cargo install cargo-generate即可

cargo generate --git https://github.com/microsoft/Windows-rust-driver-samples

加载

参考Driver does not attach to device and does not log anything · Issue #30 · microsoft/Windows-rust-driver-samples

pnputil.exe /add-driver .\echo_2.inf /install

pnputil /enum-devices /class Sample /connected

devgen.exe /add /hardwareid "root\ECHO_2"

因为对应设备使用的驱动为 c_swdevice.inf而不是我们安装的echo_2.inf

image-20241103084747669

原因是证书未被信任(优先级 已签名>未签名),可以先将target下的

image-20241103090620603

放入根证书 然后重新安装即可

代码37

老工具链

出现类似这种问题

image-20241108200517328

image-20241103091322633

https://github.com/microsoft/windows-drivers-rs/issues/42#issuecomment-1905274389

更改wdk-sys/src/wdf.rs

1
2
3
WdfMinimumVersionRequired: ULONG = 33;
//变为
WdfMinimumVersionRequired: ULONG = 31;

新工具链

  • 标题: DriverSample
  • 作者: runwu2204
  • 创建于 : 2024-10-26 01:30:02
  • 更新于 : 2024-11-08 20:11:09
  • 链接: https://runwu2204.github.io/2024/10/26/开发/Windows/驱动/Rust/DriverSample/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
DriverSample