vs2019+wdk10开发 xp, win7, win10 驱动

编程知识 更新时间:2023-04-20 01:22:14

一、安装WDK10

https://docs.microsoft/zh-cn/windows-hardware/drivers/download-the-wdk

首先下载wdk10,并安装,安装过程中会提示你当前sdk版本和wdk不匹配,所以还需要先把sdk装上。这些步骤比较简单略过了,记得安装wdk时勾上安装插件的选项,如下图:


二、编写 WIN7 X64 驱动

wdk10装好之后,可以直接开发win7的驱动,下面构建一个空WDM驱动项目:

#include <ntddk.h>

VOID DriverUnload(PDRIVER_OBJECT pDriver)
{
	UNREFERENCED_PARAMETER(pDriver);
	DbgPrint("Goodbye~\n");
}

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegPath)
{
	UNREFERENCED_PARAMETER(pRegPath);

	pDriver->DriverUnload = DriverUnload;

	DbgPrint("Hello Driver!\n");

	return STATUS_SUCCESS;
}

然后修改项目配置:

如果编译报错 “error MSB8040: 此项目需要缓解了 Spectre 漏洞的库”,则需要添加单个组件,注意版本要和当前msvc版本一致,我这里是14.27,然后我不需要ARM的,所以只勾了这三个:

如果报错 “error 1297: Device driver does not install on any devices”,就把inf文件下图选中的内容删掉,即可编译成功。

三、运行 WIN7 X64 驱动

把驱动复制到WIN7上,用KMD工具加载:

如果发现Dbgprint没有输出,我的解决方法是修改注册表,在 "HKLM/SYSTEM/CCS/Control/Session Manager/Debug Print Filter“路径下新建一个名为”DEFAULT“的键值,类型为DWORD,值为 8或0xF

四、编译 XP X86 驱动

我以前使用 vs2010 + wdk7600 写过 xp 驱动,今天尝试一下用 vs2019+wdk10。

按照刚才 X64 的套路,修改项目属性,主要就是把 inf 关掉,然后目标平台设置成 WIN7 DESKTOP:

然后就可以编译了:

拿到 xp 试试能不能用,发现是OK的。

五、编译 WIN10 X64 驱动

如果要编译运行WIN10驱动,我这里提供一种方法:
首先要把项目属性的签名设置改成 test sign

目标平台改成win10

然后和WIN7一样的方法,修改注册表打开 DbgPrint 输出:

然后管理员控制台运行这个命令来允许测试签名加载驱动:
bcdedit /set testsigning on
重启电脑后右下角有提示的字样,表明支持测试签名了:

然后就可以了,管理员运行加载程序,就能在 dbgview 看到输出:

六、符号文件环境变量

在物理机设置环境变量,使用IDA和WINDBG时就可以自动从微软服务器上下载符号文件。

_NT_SYMBOL_PATH
SRV*E:\Win10Symbols*http://msdl.microsoft/download/symbols/

更多推荐

vs2019+wdk10开发 xp, win7, win10 驱动

本文发布于:2023-04-15 14:56:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/4d41f2e6c0b06b7163ce2593769c3485.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:xp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 78472文章数
  • 14阅读数
  • 0评论数