Windows 10驱动开发入门(一):环境搭建

驱动的开发对于初学者来说是不友好的,我们不知道怎么入手,从哪里入门。对于初学者来说束手无策,特别是碰到一个很简单的问题,都不知道怎么解决,这一系列的教程,就是用来排除这些障碍。

大部分的驱动开发教程都会先给我们把文档和demo给我们贴出来:

Windows驱动程序入门: Windows 驱动程序入门 - Windows drivers | Microsoft Docs

Github: https://github.com/Microsoft/Windows-driver-samples

但这对于初学者来说,一开始并没有什么用,因为看不懂。我们还是按照之前有一定的编程基础,来进入驱动的开发。假设大家已经安装了vs2019或者更高版本的vistual studio。先开发一个Hello World的驱动程序,把驱动程序安装到测试机上,看发生了什么。我们先不管里面的逻辑原理是什么,先依葫芦画瓢,整出第一个Hello World的demo。

WDK(Windows Driver Kit) 安装

安装WDK也是比较简单的事情,在Vistual studio Install上找到Windows Driver Kit ,进行安装,安装完成了以后会出现Windows Driver Kit已经打钩了。

Windows 10驱动开发入门(一):环境搭建_第1张图片

编写HelloWDK

新建一个工程,选择Empty WDM Driver项目,新建driver.cpp文件,编写如下代码:

Windows 10驱动开发入门(一):环境搭建_第2张图片

// driver.cpp
#include 

extern "C" void DriverUnload(PDRIVER_OBJECT pDriverObject);

extern "C"  NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegPath)
{
	DbgPrint("[GO2CODING_Driver] DriverEntry\n");
	NTSTATUS status = STATUS_SUCCESS;
	pDriverObject->DriverUnload = DriverUnload;

	return status;
}

extern "C" void DriverUnload(PDRIVER_OBJECT pDriverObject)
{
	DbgPrint("[GO2CODING_Driver] DriverUnload\n");

	return;
}

这时候编译会出错,

error C2220: 以下警告被视为错误
warning C4100: “pRegPath”: 未引用的形参
warning C4100: “pDriverObject”: 未引用的形参

我们还需要如下的设置:

1.配置属性 - C/C++ -常规 中 将警告视为错误 设置为 否

2.配置属性 - Driver Signing - General 中 Sign Mode 设置为 Off。

3 .配置属性 -Inf2cat - run Inf2cat 设置为 否。

这样编译成功后,生成HelloWDM.infHelloWDM.sys文件。第一个demo也就完成了。

测试虚拟机

在做驱动的时候,并不像以前开发的应用程序那样,最好不要直接在本机上测试,我们需要一台windows 10 的虚拟机,虚拟机的安装方式可以参考相关的教程。

Windows 10驱动开发入门(一):环境搭建_第3张图片
我们还需要驱动开发的相关工具,包含DebugViewDriverMonitorIRPTraceWinObjDeviceTreeDiskViewDriverManagerEzDriverInstaller,可以在这里进行下载。放到测试机上。

测试机在正常的模式下,是无法安装windows没有签名的驱动,我们需要把测试机变为不需要签名验证。

shift重启测试机。

Windows 10驱动开发入门(一):环境搭建_第4张图片
进入这个界面,选择 疑难解答->启动设置->重启。重新进入系统,在如下的页面中按 7 启动windows。

Windows 10驱动开发入门(一):环境搭建_第5张图片
重启完后,把编译好的HelloWDK放到测试机上,进入设备管理(电脑右键->管理),添加过时硬件。

Windows 10驱动开发入门(一):环境搭建_第6张图片

一路下一步到底,直到出现 从磁盘安装,选择安装的路径到刚才拷贝的路径下。

Windows 10驱动开发入门(一):环境搭建_第7张图片

在安装驱动之前,我们先以管理员的身份打开debugview,在Capture选择如下,等待着log的输出。
Windows 10驱动开发入门(一):环境搭建_第8张图片

安装驱动,会 出现如下的提示,选择始终安装。

Windows 10驱动开发入门(一):环境搭建_第9张图片
提示安装完成。

Windows 10驱动开发入门(一):环境搭建_第10张图片

在设备管理上出现了,如下的新设备。

Windows 10驱动开发入门(一):环境搭建_第11张图片
同时在debugview下,我们可以看到如下的log

Windows 10驱动开发入门(一):环境搭建_第12张图片
这个log对于我们来说,意义太重大了,说明我们不仅仅把驱动安装成功了,还打印出了日志,简直相当于调试了,我们的心安了不少。

你可能感兴趣的:(Windows,10驱动开发入门,驱动开发,windows,microsoft)