注意点:
- 缺少:原因是装的WDK版本和SDK版本不匹配所致,或者sdk没有装好
- 安装SDK一定得与WDK相匹配
VS2019+WDK10开发驱动
1、安装VS2019,已安装的话忽略
2、安装WDK10
首先先下载离线版,这里下载的是10.0.19041.685这个版本(要注意版本),离线版下完后进入下载目录那里
先选择下载离线版:
再到到下载目录那里点击,这次选择安装:
然后安装:
离线版需要数字签名,安装:
3、同步WDK与SDK的版本
打开VS,工具–>获取工具和功能–>单个组件。在里面搜索SDK,前面因为WDK是10.0.19041.685这个版,这里选择下载10.0.19041这个版本,如果VS之前有SDK,注意把旧版SDK取消掉(卸载掉),或者直接按照旧版SDK下载WDK。如果有两个SDK,可能会有冲突。完成安装后,初步的环境已经搭建好了
4、环境完善
当我们上述操作成功执行后,我们可以打开VS2019,这时在新建项目中就有驱动项目了
新建一个驱动项目:
创建一个.C文件,代码如下:
#include <>
VOID DriverUnload(PDRIVER_OBJECT pDriver)
{
UNREFERENCED_PARAMETER(pDriver);
DbgPrint("Goodbye~\n");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegPath)
{
DbgPrint("Hello Driver!\n");
UNREFERENCED_PARAMETER(pRegPath);
pDriver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
我们先编译x64的驱动,平台选择X64,修改配置:
生成驱动文件
注意选择X64生成
出现错误:“error MSB8040: 此项目需要缓解了 Spectre 漏洞的库”,我们需要下载组件,版本需要一致:
出现错误“error 1297: Device driver does not install on any devices”,更改项目文件中的inf文件,删除如下选择部分:
以上X64的环境就已经可以编译了,这里我们改成编译x86的驱动,平台选择X86,修改配置,属性配置修改与X64一样,只需平台选择为Win32
按照X86编译:
5、驱动文件测试
编译成功后到相应文件夹找到.sys文件。
利用工具DebugView+KmdManager,测试x86驱动: