准备
首先我们要准备一些必备的软件
visual studio 2017 installer:vs2017.zip - 蓝奏云
wdk17134:适用于 Windows 10 版本 1803 的 WDK
安装
我们先运行vs2017安装程序
我们点继续,等进度条走完后会出现如下界面
先选择 使用 C++ 的桌面开发,再将进度条往下拉,找到 Visual Studio 扩展开发 并勾选
接着点击上方的 单个组件,在搜索框里搜索 sdk
进度条往下拉,找到 Windows 10 SDK(10.0.17134.0)并勾选
然后点击安装,等安装完成后的界面如下
我们先启动一下vs2017,第一次启动会出现如下界面
点击下方的以后再说
选择自己喜欢的主题后启动vs
然后关掉vs,开始安装wdk
打开wdk安装程序
一直点击Next知道出现如下界面
点击Accept后开始安装
等安装完成后界面如下
点击Close,之后又会出现如下界面
点击Install
若出现以下情况
点击End Task,然后开始安装
安装成功后界面如下
配置环境
关闭界面,再次打开vs2017,点击上方菜单栏的文件-新建-项目
在新弹出的窗口左侧选择Visual C++,Windows Drivers
在中间一栏选择Empty WDM Driver,创建一个新的项目
在右边解决方案资源管理器里右键Source Files,创建一个c源文件
我们可以看到这两个方框
这个要根据实际情况进行改动,Debug代表调试版本,Release代表发行版本,这里选择Debug就行了
但如果我想把这个驱动放在64位Windows7系统上运行,则需要把第二个框里的x86改成x64
接着在解决方案资源管理器里右键项目名称,选择属性(或左键点击项目名称,按Alt+Enter)
先将上方配置和平台改成前面两个方框里所修改的
再在左侧选择Driver Settings,将Target OS Version改成Windows 7
然后在左侧框里选择C/C++,将警告等级改为3,将警告视为错误改为否,
再再在右边选择Inf2Cat,将Run Inf2Cat改为否
点击应用和确定
然后我们先写一段代码打印Hello World!
#include <ntifs.h>
NTSTATUS DriverUnload(PDRIVER_OBJECT pDriver)
{
return STATUS_SUCCESS;
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegUnicodeString)
{
pDriver->DriverUnload = DriverUnload;
DbgPrint("Hello World!\n");
return STATUS_SUCCESS;
}
若出现以下情况
我们需要再次打开属性界面,在左侧选择常规,将右侧的Windows SDK 版本改成10.0.17134.0
应用确定后就正常了
生成驱动
我们右键项目名称,选择生成,或者按ctrl+shift+b
生成成功
我们右键左上方的main.c,选择打开所在的文件夹
向后退一级,在目录里找到x64
进去后再点击Debug
这个sys文件就是我们生成的驱动
测试
我们找台64位Win7试一试
可以看到我们成功打印了Hello World!
具体怎么加载驱动和双机调试,我会在下一期里讲