参考链接
编写通用 Hello World 驱动程序 (KMDF) - Windows drivers | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/gettingstarted/writing-a-very-small-kmdf–driver
《Windows内核安全与驱动开发》
调试环境
通常,在测试和调试驱动程序时,调试程序和驱动程序会在不同的计算机上运行。 运行调试程序的计算机称为“主计算机” ,运行驱动程序的计算机称为“目标计算机” 。 目标计算机也称为“测试计算机”
主计算机:win10
vs2019
sdk
wdk
注意:sdk版本要和wdk版本一致
网速要快
硬盘空间要足够
目标计算机:win7虚拟机
通过虚拟串口、管道与主计算机相连
按顺序看参考链接
参考链接:
- windbg+vm双机调试 waiting to reconnect 无法连接问题,解决办法_乱七八糟の中转站-CSDN博客
https://blog.csdn.net/spenghui/article/details/78850637 - [翻译]WinDbg内核调试配置方法介绍-『外文翻译』-看雪安全论坛
https://bbs.pediy.com/thread-246228.htm - 内核进击之旅–安装调试环境 « FOCUS
https://ray-cp.github.io/archivers/%E5%86%85%E6%A0%B8%E8%BF%9B%E5%87%BB%E4%B9%8B%E6%97%85–%E5%AE%89%E8%A3%85%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83
编写第一个驱动程序代码
生成驱动程序
引用Visual Studio 2019 WDK10 - Developer Community
https://developercommunity.visualstudio.com/content/problem/596096/visual-studio-2019-wdk10.html
中的内容:
使用WDK 1903和Visual Studio 16.1 +调配计算机以进行驱动程序部署和测试时出现错误
Visual Studio团队解决了一个已报告的问题,该问题导致MSVC调试工具的位置发生了变化。WDK依赖于此文件夹结构,并且使用Visual Studio修复后,WDK正在寻找的文件夹结构不再存在。在具有WDK和Visual Studio 16.1 +的系统上预配计算机以进行驱动程序部署和测试时,预配将失败。查看日志时,出现以下错误消息:
将文件部署到目标计算机以测试“驱动程序删除”时发生错误:找不到路径’C:\ VS \ VC \ Redist \ MSVC \ 14.21的一部分.27702 \ debug_nonredist \ X64 \ Microsoft.VC141.DebugCRT’。解决方法:
以管理员身份
运行VS 2019 的Developer Command Prompt,在VS Developer Command Prompt中运行以下命令:
- cd /d %VCToolsRedistDir%\debug_nonredist
- MKLINK /J x86\Microsoft.VC141.DebugCRT x86\Microsoft.VC142.DebugCRT
- MKLINK /J x64\Microsoft.VC141.DebugCRT x64\Microsoft.VC142.DebugCRT
参考链接:
- Visual Studio生成解决方案时的错误MSB8040 Spectre-mitigated libraries are required for this project的解决方法_qiu_pengfei的博客-CSDN博客
https://blog.csdn.net/qiu_pengfei/article/details/102578479
部署驱动程序
通过vm tools将相关文件复制到虚拟机就可以了
通过vs部署比较麻烦
参考链接:
- error C2220: 警告被视为错误 - 没有生成“object”文件_cay22的专栏-CSDN博客
https://blog.csdn.net/bagboy_taobao_com/article/details/5613625
安装驱动程序
在win7上
计算机→右键→属性→设备管理器→操作→安装过时硬件→从磁盘安装
win10上没有安装过时硬件的选项
调试驱动程序
参考链接:Windows 调试工具(WinDbg、KD、CDB、NTSD) - Windows drivers | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/