从零配置vs2017驱动编程环境(保姆级教程)(1)

本文详细指导如何在VS2017中设置C++开发环境,包括安装VisualStudio、WDK,配置WindowsSDK,创建并编译基本的WDM驱动,以及生成HelloWorld驱动。后续将介绍驱动加载和双机调试教程。
摘要由CSDN通过智能技术生成

准备

首先我们要准备一些必备的软件

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!

具体怎么加载驱动和双机调试,我会在下一期里讲

下一期:从零配置vs2017驱动编程环境(保姆级教程)(2)-CSDN博客

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值