Windows驱动程序开发 – 初识驱动
什么是驱动程序?
驱动(Driver)可以简单理解为设备的操作程序,通常驱动是要符合操作系统规范的。
情景一:没有操作系统的情况(裸机)
- 应用通过直接操作接口来发送命令编码,这一过程需要开发人员熟悉数据手册。
- 设备通过接口接收命令,直接执行
- 最后把命令封装成函数,形成库
情景二:应用基于操作系统
- 设备的驱动按照OS规范进行编写,并安装注册到操作系统
- 应用的调用会传递到操作系统,进而调用驱动程序来操作设备。
[1]. 搭建Windows驱动开发环境
环境搭建的步骤如下:
- 安装Visual Studio (配置C++环境)以及Windows SDK版本
- 下载安装对应SDK版本的Windows Driver Kit (WDK),安装程序会检测是否已安装对应的SDK
- WDK安装完成会弹出提示,安装VS插件,选择安装
本机采用(适用于 Windows 10 版本 1903 的 WDK)和(Windows SDK 10.0.18362.0),IDE使用VS2019进行开发测试,系统和驱动均为64位。
[2]. 第一个驱动程序
打开Visual Stuido 2019,可以创建UMDF和KMDF模板项目、WDM空项目,我们直接使用模板创建项目。
- 创建 User-Mode Driver (UMDF V2) 项目
- 修改配置为Debug模式 x64
- 编译生成
- 安装inf,需要注意的是此时驱动并没有合法的签名,安装会报错(x64)
[3]. 双机调试
- 安装VMWare虚拟机,以及需要调试的目标(测试)主机系统,配置需要的驱动设备
- 测试主机开启调试模式,以及安装WDK Test Target到测试主机
- 在开发主机VS上添加和配置设备
- VS部署到测试主机,使用附加到进程Kernel的方式调试(前提是驱动安装到目标机)
参考
Windows 驱动程序入门
总结
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176184.html原文链接:https://javaforall.net
