[Windows驱动开发] 00_初体验(环境搭建、HelloWorld项目、调试)

🛫 导读

需求

驱动一直没有系统的学习过,每次用到的时候总得折腾下安装环境,现在整理下,避免以后再各种查资料。

开发环境

版本号描述
文章日期2019-05-10
操作系统Win10
VS2017 community
Cloud IDE1.71.0
WDK10.0.17763.1

1️⃣ 安装VS2017 community

网上太多教程,这里就不班门弄斧了。可以参考这篇文章:vs2017安装和使用教程(详细)https://blog.csdn.net/qq_36556893/article/details/79430133
其中重要的选项如下面截图所示:
在这里插入图片描述

注意事项

  • VS的首页默认下载是VS2019了,需要选择2017的链接才可以。
  • SDK使用的是10.0.17763.0版本,这个得和WDK相同,否则会导致编译错误。
  • 如果程序需要支持XP系统,请勾选“对C++的Windows XP支持”选项!

2️⃣ 安装WDK

官网下载WDK,截止到现在(2019-5-10),该页面就是最新的WDK(也就是《 Windows 10 版本 1809 的 WDK》)。
如果版本不一样,请到下载以前版本的 WDK页面下载。下载后,打开文件属性,再选择详细信息页面,可以看到该文件就是10.0.17763.1版本。
在这里插入图片描述

步骤

WDK安装很简单,依次按照下面的图进行即可:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

WDK扩展插件

安装成功后记得安装WDK扩展插件,该文件为D:\Windows Kits\10\Vsix\WDK.vsix
在这里插入图片描述

3️⃣ 编写HelloWorld项目

新建WDM项目

打开VS,新建WDM项目(这个分类到测试里面了,应该是微软的bug吧),如下图所示:
在这里插入图片描述

h3

新建main.c,添加代码如下:

#include <ntifs.h>

//提供一个卸载函数,让程序能卸载,如果没有这个函数,驱动将不能卸载。
VOID UnDriver(PDRIVER_OBJECT driver)
{
	UNREFERENCED_PARAMETER(driver);
	KdPrint(("UnDriver.\n"));
}

//入口函数,相当于main。
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
	UNREFERENCED_PARAMETER(driver);
	UNREFERENCED_PARAMETER(reg_path);
	KdPrint(("Hello World!\n"));
	driver->DriverUnload = UnDriver;
	return STATUS_SUCCESS;
}

删除HelloWorld.inf

设置各种配置选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编译

4️⃣ 安装VMWare

VMWare安装也很简单,这里直接找了篇文章:最新超详细VMware虚拟机下载与安装

至于如何安装虚拟机系统,我实在太赖,直接找了个别人安装好的镜像,或者ghost等。

5️⃣ 安装VirtualKD

参考文章《使用VirtualKD搭建双机调试环境》,很详细。

windbg设置

  • 环境变量:_NT_SYMBOL_PATH=SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols
  • WinDbg菜单:File->Symbol File Path。“C:\MyCodesSymbols; SRVC:\MyLocalSymbolshttp://msdl.microsoft.com/download/symbols”
  • WinDbg提供命令行参数-y设置Symbol File Path。
  • WinDbg命令:.sympath .reload
  • 最后一种,WinDbg的帮助中没有提到,通过注册表设置:HKLM\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories\symbols下,设置SymbolPath,类型为REG_EXPAND_SZ。可以通过命令行直接添加:
    reg add “HKLM\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories\symbols” /v SymbolPath /t REG_EXPAND_SZ /f /d c:\windows\symbols;SRVd:\symbolshttp://msdl.microsoft.com/download/symbols

🛬 文章小结

📖 参考资料

**ps:**文章中内容仅用于技术交流,请勿用于违规违法行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值