admin 管理员组文章数量: 887021
WIN10-2004+VS2019+WDK驱动开发环境安装及配置
一、定义介绍
本节介绍如何在Windows10系统(2004版本,操作步骤中有如何查看版本)中安装VS2019及WDK开发包,并进行相应环境配置、修改,使我们可以在WIN10中进行驱动开发。
二、操作步骤
必须先安装VS2019
(一)下载并安装VS2019(包括其组件)
1.下载VS2019
如果不想麻烦(狗头),可以直接网上搜索一下下载。
如果支持正版,可以通过官网VS2019官网下载(找下载链接也得找一会,这里就直接提供了)下载(但可能需要VPN和微软账号)。
2.安装VS2019
大部分下载的VS2019只是个安装器(不然也不能那么小),如图所示
双击运行,自己一直下一步,直到如下图所示界面,勾选上红框部分。
稍微解释一下,C++桌面开发是必须的,不需要多说;Windows 10 SDK(我这里用的是10.0.18352.0)是安装WDK的前提,因为WDK用到了Windows SDK中的东西;MSVC是Microsoft的Visual C/C++编译器。
!!!注意:Windows SDK的版本必须和WDK保持版本平衡,如果用错了版本就没法成果安装WDK。!!!
(二)下载并安装WDK
1.下载WDK
进入官网链接WIN WDK下载下载WDK安装程序,如下下图所示
这里的WDK的版本必须和WIN10的版本一致!!!右击此电脑——属性即可查看到版本信息,如下图
我这里使用的是2004版本的WDK,对应我的SDK版本。
2.安装WDK
双击WDK安装程序,如下图
选择红框部分
继续,直到如下图所示,选择红框部分
点击上图Close会自动弹出VSIX(签名)安装,安装即可
到此,所有安装都已经完成,现在已经可以正常创建驱动项目了。
(三)创建驱动项目并配置
1.打开VS2019创建驱动项目
此时已经可以创建驱动项目,如果不行请仔细对照步骤检查,尤其是WDK和SDK版本对照问题。
接下来就创建新项目,按照如下图所示进行选择。这里注意一下虽然是C++项目,但因为我们建立的是空项目,可以自己建立c文件,所以你自己建立c或c++文件都不影响,但两者代码有些区别,只要后面代码写对就行。
项目名称,项目放哪个文件夹就不再赘述。
创建完成后VS2019显示如下图,只有几个文件夹,没有文件
我们保存的项目路径中多了几个文件,如下图
2.修改配置
(1)创建驱动源文件
先在VS2019右侧source目录下创建一个空的点c文件,命名为“HelloDriver.c”,如下图。其实,驱动大部分都是由c写的(因为Windows操作系统就是C写的,也可以是C++),驱动和别的程序的区别无非就在于①.多了几个库(内核库等)②.编译方式不同。这样去理解驱动你就会发现高深莫测的内核驱动其实也不过如此。
(2)打开项目属性,如图
(3)修改警告等级
在“C/C++——常规”中修改警告等级为“3”;警告视为错误设为“否”,如图
(4)关闭Spectre缓解
在“C/C++——代码生成器”中找到并关闭Spectre缓解,如图所示,设置Spectre Mitigation为“Disable”。Spectre缓解是一种硬件漏洞的软件规避方法,安装了WDK之后会导致Spectre缓解被默认打开了,如果没有安装带Spectre缓解的库,编译就会失败。
(5)设置警告模式
在“Driver Signing——General”中修改“Sign Mode”为“Off”,如图
(6)排除inf文件
在Drvier Files文件夹中找到.inf文件,右击从项目中排除
(7)修改目标版本
根据你要生成的项目用于什么环境,在“Driver Setting——General”中修改目标系统版本“Target OS Version”选项,可以选择Win7、Win8、Win10等等,此外,Debug和配置管理器(就是那个修改X86还是X64项目的下拉栏)根据不同的需求自己定制
到此,一般该配置的东西都已经配置完成了,下面就可以写代码并编译了。
(四)项目测试
1.编写源码
在“HelloDriver.c”中编写驱动程序,这里给出个小例子,初学者照抄就行。
/*
FileName:HelloDriver.c
*/
#include <ntddk.h>
void DriverUnload(PDRIVER_OBJECT pDriverObject);
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegPath)
{
DbgPrint("HelloDriver DriverEntry\n");
NTSTATUS status = STATUS_SUCCESS;
pDriverObject->DriverUnload = DriverUnload;
return status;
}
void DriverUnload(PDRIVER_OBJECT pDriverObject)
{
DbgPrint("HelloDriver DriverUnload\n");
return STATUS_SUCCESS;
}
2.编译生成SYS
第一次生成就点击“生成解决方案”
以后修改过代码后就点击“重新生成解决方案”
最下面没报错说明就生成成功了,如图
之后,我们在Debug文件夹下的MyDriver1文件夹下就可以看到.sys文件了,如图
至此,整个环境已经配置完毕,测试案例也已经通过编译并成功生成sys驱动文件。
来自:九七的Windows内核驱动开发
作者原创文章,文章版权归本文作者所有,未经作者同意请勿以任何方式进行复制、转载等盗版操作,请勿用于商业、违法用途!违者自行承担法律责任!
版权声明:本文标题:九七的Windows内核驱动开发 WIN10-2004+VS2019+WDK驱动开发环境安装及配置 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1716093044h665957.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论