Visual Studio 2015 + WDK 10 驱动开发环境搭建

来源:互联网 发布:淘宝开店挣钱吗 编辑:程序博客网 时间:2024/05/26 07:29

前言:因为 Visual Studio 2017 暂不支持驱动开发,所以 Visual Studio 2015 是驱动开发的不二选择。以下教程主要讲述了从零开始搭建驱动开发环境的方法。

1.下载 Visual Studio 2015 Community 和 WDK 10
下载地址
点我直接下载 Visual Studio 2015 Community
点我直接下载 WDK 10
如果后面两个链接无效,请进入第一个链接,按下这两个按钮就能下载了:
点击获取 VS Community 2015 和 安装适用于 Windows 10 版本 1703 的 WDK

2.安装 Visual Studio 2015 Community
这个就不再多说了,只需要安装其中的 C++ 组件即可。

3.下载/安装 WDK 10
下载的过程可以在安装 VS 2015 时进行。具体的操作方法可以参见别人的教程,毕竟这一步一抓一大把。(其实是因为我不方便截图)

4.新建驱动项目
Windows Driver
如果安装成功,将会有上图的选项。

5.使用 VMware 12.5
本教程的重点是配置双机调试,编写驱动我还不会,所以就先放一放。现在假设已经写出来了一个 HelloWorld.sys。
再假设已经安装好了 VMware 并下载好了镜像(MSDN,我告诉你)。

创建虚拟机时,选择自定义:
自定义

然后一直按下一步(当然也可以根据需要自己改改),直到到了这一页,选择自定义硬件:
自定义硬件

首先先把打印机删了,这样可以防止一会儿出一些小问题(如果懂的话可以不删):
删打印机

然后按添加,选择串行端口:
串行端口

选择输出到命名管道:
输出到命名管道

把第二个列表框从虚拟机改成应用程序:
把第二个改成另一端是应用程序
然后按两个完成,开始创建虚拟机,等待创建完毕。

6.配置虚拟机
打开运行窗口,运行 “msconfig”,来到这个界面,选择高级选项:
运行msconfig并进入引导界面

选择调试,调试端口,波特率,其值不要更改:
选择高级选项

保存并退出,然后去更改虚拟机的计算机名为一个好看的名字,一会儿要用。具体方法这里不再阐述。

7.在虚拟机上安装调试驱动
"C:\Program Files (x86)\Windows Kits\10\Remote\x64""C:\Program Files (x86)\Windows Kits\10\Remote\x86"中分别拷贝"WDK Test Target Setup x64-x64_en-us.msi""WDK Test Target Setup x86-x86_en-us.msi"到虚拟机中并安装。如果是32位系统则不用(不能)安装第一个。如果找不到可以用一下资源管理器的搜索功能。

安装后重启虚拟机,虚拟机就配置好了。现在可以根据需要再改改虚拟机的设置(如关闭UAC以方便调试,拷贝一些必备软件到虚拟机上),然后利用一下虚拟机的快照功能保存个快照,以供快速还原。可以自行百度具体方法。

8.在 VS 中设置远程设备
选择“配置设备”。
配置设备

选择“添加新设备”。
添加新设备

然后会有这么一个窗口出现,下面这张图那个唯一的文本框随便填,可以就用默认的名字
配置设备

然后你发现不能按下一步。。。这可能是一个bug,其实这一个窗口是可以调整大小的。把这个窗口拉大一点,然后照下图设置:
设备配置
那个计算机名就是第6步结尾叫你设置的那个计算机名。。。

将打了箭头的改成图中的样子,其它地方就是默认值:

其中的“Pipe name”是配置虚拟机串口的那个管道名。
注意,如果之前没有删除虚拟机的打印机,然后接下来打死连不上虚拟机的,试试把“Target Port”改成com2,因为打印机可能占用了串口1。

如果此时虚拟机已打开,但状态还是下图这样的“不可用”的话,请再检查一下设置是否到位:
清单
检查:虚拟机是否打开了调试模式(这个一般都开了),虚拟机是否已安装驱动,虚拟机的串口是否已经打开,“Target Port”是否正确等。
一直不可用也不要着急,说不定可以用。。。现在先按完成保存配置,准备调试,看看到底能不能用。

9.开始调试
选择附加到进程
附加到进程

把箭头项改成图示样子
附加到进程
第二个框的名字为你刚才随便取的设备名,可以用下拉列表查看。如果不能按“附加”,先点一下刷新。再点附加。

此时并没有完全成功,因为你的“立即窗口”显示的是等待重连。
等待重连

这个时候有两种方法。一是按下暂停按钮,二是重启虚拟机。稍等片刻后,若虚拟机停下并且调试器出现如下界面,则说明成功。
成功调试
然后按继续,虚拟机就能跑起来了。在虚拟机安装了自己的驱动后,就可以用断点中断了。
断点