免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

上一个内容:1.Windows驱动-驱动说明

想进行驱动开发,需要去微软官网下载一个WDK,WDK全称Windows driver kit(Windows驱动开发系统),然后首先看一下我们系统的版本号,首先按Win+R键打开运行窗口,如下图在运行里输入winver

然后点击上图里的确定就能打开下图的窗口,就可以看到系统的版本号了

然后去官网,这里通过必应来搜索WDK找官网,如下图它就是微软官网。https://learn.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk

进来后默认显示最新版本的WDK下载

有三个步骤,第一个步骤需要安装VS2022,也就是说最新版本的驱动开发要使用vs2022进行开发,vs要下载企业版,不要使用免费的社区版,社区版可能会有问题,专业版免费使用30天,可以百度激活秘钥激活成永久

第二个步骤是下载SDK

第三个步骤,也是最后一个步骤,安装WDK

如果要开发老版本的驱动,点击下图红框

然后通过系统的版本号找到对应的vs、sdk、wdk就可以了

点击下图红框,可以看到更早的系统版本

如下图更早的Windows10

首先安装VS

参考这里:https://blog.csdn.net/qq_36301061/article/details/142468613

上方的连接是VisualStudio2017的安装步骤,2022和2017安装步骤一样

我当前vs安装的内容桌面开发和扩展都是默认的,然后从单个组件中搜索驱动可以找到Windows驱动开发工具包,从单个组件中搜索MSVC可以找到MSVC v143 - VS 2022 C++ x64/x86 Spectre 缓解库(最新),然后直接点击安装就可以了

下图红框是安装的所有详细内容

然后接下来是WDK(SDK放到后面了使用VS进行安装)

打开之后使用默认的路径就可以,然后点击Next

然后Next

然后下图是一个提示,说明vs少安装东西了,点击下图红框的Next还是可以正常安装的,但是它没办法安装VS的开发模板,我们是需要这个模板的,所以这里先不要点击Next

然后点击Accept

然后就开始安装了,安装的可能会很慢,耐心等待

安装成功,之前的版本,这里会有复选框,选择是否安装VS模板(是英文的,用翻译工具翻译一下就能看懂),模板安装程序,这个模板安装程序只能VS关闭状态下运行,所以要在WDK安装完成之前,把VS关闭

然后接下来安装SDK,首先找SDK对应的版本,SDK的版本要根据WDK来,如下图是上方安装的WDK(通过控制面板也能看到),可以看到它的版本,10.0.26100.6584,勾选C++桌面开发默认会一个安装SDK,默认安装最新版本

如下图红框,搜索SDK或搜索版本号,不同的vs搜索出来的结果不一样,要根据官网里的vs来进行安装,可以找到对应的SDK,勾选上然后点击修改就可以了

到这就安装好了,然后创建一个驱动项目进行测试,点击 下图的项目

然后选择下图红框,这是创建一个空的驱动项目,点击下一步

然后点击创建,下图的

然后驱动项目就创建好了

然后右击选择属性

如果属性里面的内容和下图红框里的不一样,说明vs安装的有问题,重新下载vs2022专业版,然后重新安装,下图是重新安装的vs2022

然后设置一下SDK,,如下图选择我们的10.0.16100.0版本的sdk

然后把警告视为错误设置成否

然后设置使用驱动的操作系统版本,要在Windows11上用,这里就选择Windows10or higher

然后选择Desktop,表示这是一个桌面端(也就是我们的pc电脑)驱动不是移动端驱动

然后点击确定

然后开始写代码,如下图鼠标右击,然后选择新建项

然后点击下图红框

然后如下图,驱动一般都是用c语言写的,不用c++,所以创建的文件是.c不是.cpp,如果非要用c++也就是.cpp需要使用EXTERN "C"关键字来声明以C语言的方式运行

然后创建完成

开始写代码,注意驱动的代码非常严格,如果驱动报错了,操作系统就会蓝屏,所以还需要调试环境,下一节搭建调试环境

#include <ntddk.h>

// DriverEntry 是驱动的入口函数,驱动运行时优先进入DriverEntry函数
// DriverObject 是驱动对象
// RegistryPath 是驱动中的字符串类型
NTSTATUS DriverEntry(PDRIVER_OBJECT  DriverObject, PUNICODE_STRING RegistryPath) {
	
	return STATUS_SUCCESS;
}

本次右击重新生成成功,就可以了,下一节接着继续

如下图我们的驱动文件


img

更多推荐