驱动程序(1) win10下Visual Studio 2017的安装以及双机调试搭建

前言:毕业上班以来,现在这个项目比较缺一个做windows下驱动程序开发的,所以本人就负责这方面的工作。之前没有接触过,完全萌新,全靠一本武安河编著的《Windows设备驱动程序WDF开发》和各路网上大神们的博客。现在把这段时间来的一些经历和体会写下来,如有错误还请各位请点轻喷 QAQ

主要的一些资料来源和引用:
[1] 武安河《Windows设备驱动程序WDF开发》
[2] 微软官网Windowsqu驱动程序入门
https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554690(v=vs.85).aspx
[3] cnblogs博主lulujianjie的《基于WDF的PCI/PCie接口卡Windows驱动程序》
https://www.cnblogs.com/jacklu/p/4679304.html
[4] CSDN博主Sagittarius_Warrior的一系列关于驱动程序的博客
https://blog.csdn.net/Sagittarius_Warrior/article/list/9
[5] CSDN博主chenchong_219的《从零开始学习Windows WDF驱动程序开发》
https://blog.csdn.net/chenchong_219/article/details/21655481
[6] 还有一些其他博主的博客,这里就不一一列举了

一. win10下Visual Studio的安装

本人用的系统是windows10教育版,首先去微软官网下载VS Community 2017,https://visualstudio.microsoft.com/zh-hans/vs/ 如果是个人或者小型企业开发,社区版是最好的,因为它是免费的,只要注册个微软账户就可以使用了。目前VS也出了最新的2017,所以还是用最新版本的,但是目前网上博客还是很多在使用15或者更早版本的,不过也没关系,其实大同小异,主要功能还是没有变化的。

下载之后会先安装的是一个VS Installer,这是一个辅助安装工具,在这里你可以选择修改安装VS的哪些模块。因为本人需要做的是KMDF相关的开发,所以就选了默认的几个模块,比较重要的是Windows 10 SDK(这里我选择了最新版10.0.17134.0)和windows Driver Kit(这个WDK需要单独安装,微软官网搜索WDK选择相应版本安装即可
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk)
这里写图片描述

安装好VS之后启动,在文件->新建项目->Windows Driver->WDF下选择Kernel Mode Driver(KMDF),这是一个KMDF的模板。
这里写图片描述

命好名和选好存放位置后,确认创建。在右边的解决方案资源管理器中可以看到,这个模板已经将KMDF驱动程序的开发划分了5个头文件和3个源文件,各个部分都已经给出了框架的代码和注释,我们需要做的就是在其中写入自己需求的代码,所以说是已经很大程度方便了开发者。
这里写图片描述
device.h包含了一些设备的定义信息;driver.h包含了驱动的定义信息;public.h包含了一些驱动程序和应用程序共同的声明,可以给两者共同使用;queue.h包含了队列的定义信息;trace.h包含了用来追踪相关函数的定义信息,可以不用修改。

driver.c包含了驱动的入口函数DriverEntry和一些其他回调函数,例如设备的添加EvtDeviceAdd;device.c包含了一些控制设备的回调函数,例如可以在此编写设备资源的获取函数EvtPrepareHardware;queue.c包含了一些控制队列的回调函数,例如由应用程序触发的EvtIoDeviceControl函数。

二. win10下VS的双机调试搭建

双机调试网上很多博客已经讲过了,但是大都数都是利用虚拟机的方式,而用两台计算机的形式则很少,因为本人两种方式都做了,这里就主要讲两台计算机如何建立通信。其实方法和虚拟机大同小异,主要是可能中间过程不一样。
(1) 首先需要给两台计算机安装上相同的windows 10,版本也最好一样,然后拿一个路由器,让两台计算机处于同一个局域网下,在CMD命令提示符里ping对方主机名,确保两者之间可以互相ping通。搭建局域网的目的是因为通信过程中我选择的是Network方式,让两台计算机处于同一个局域网下可以最大限度减少网络带来的干扰。

(2) 接着打开目标机的CMD命令提示符,执行命令 bcdedit/debug on 开启测试模式;bcdedit/dbgsettings net hostip:w.x.y.z port:n 设置相关参数,w.x.y.z是主机IP4地址,n是选择的网络端口,同时生成一个key,待会主机会用到;可利用命令bcdedit/dbgsettings 来查看已经设置好的参数,如下图所示
这里写图片描述
同时,如果测试模式开启成功的话,在目标机桌面的右下角会看到测试模式的字样,并显示相关的版本信息。
这里写图片描述

(3) 目标机配置好之后,先去主机VS的同一目录下找到windows kits->10->Remote->x64下的Windows SDK Direct x64 Remote-x64_en-us文件,点击安装好,之后复制到目标机上,进行同样的安装。之后就可以在主机的VS上开始建立通信了,选择Driver->Test->Configure Devices->Add New Device,Net work host name填写目标机的名称,然后选择第一种设置方式;
这里写图片描述
接着选择kernel mode,连接方式为Network,port number、key、host ip就是在目标机里设置的那些;配好之后点击下一步,显示Configuration Progress,等待通信完成,status出现Configured for driver testing状态表明通信已建立成功。
这里写图片描述

到这里VS的安装和初步通信就完成了!

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页