天气与日历 切换到窄版

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 496|回复: 0

[C++教程] VS2013+WDK8.1 驱动开发环境配置

[复制链接]

3188

主题

4

回帖

3290

积分

管理员

积分
3290
发表于 2024-2-26 12:50:35 | 显示全部楼层 |阅读模式
VS2013+WDK8.1 驱动开发环境配置
Windows Driver Kit 是一种完全集成的驱动程序开发工具包,它包含 WinDDK 用于测试 Windows 驱动器的可靠性和稳定性,本次实验使用的是 WDK8.1 驱动开发工具包,该工具包支持 Windows 7到 Windows 10 系统的驱动开发。
  • 驱动WDK工具包推荐: Windows Driver Kit(WDK) v8.1 离线安装包
  • 首先你需要先安装好Visual Studio 2013的开发环境,然后再安装Windows Driver Kit 8.1的驱动开发工具包,这个工具包安装好以后1.5G左右,不过我已经把这个安装包中的关键库文件提取出来了,提取出的文件只有80MB,直接将提取好的WinDDK.zip解压缩到指定文件中,并配置环境即可使用,省去了安装WDK的麻烦。
    1.这里直接把我提取的WinDDK.zip文件解压缩到C盘根目录下,然后打开Visual Studio 开发工具,按下Ctrl+Shift+N新建空项目并输入项目名称为MyDDK即可。
  • 2.依次选择解决方案视图 -> 源文件 -> 添加新建项,或者直接按下Ctrl + Shift + A快捷打开菜单,并创建main.cpp文件。
  • 3.接着我们需要修改一下配置管理器,添加自定义配置管理,选择生成->配置管理器->新建,此处我们命名为MyDDK即可。
  • 4.接着修改一下配置属性中的常规属性,点击菜单栏中的调试,选择MyDDK属性->配置->常规 -> 修改以下几处。
  • 5.配置可执行文件路径与导入库路径,这里我们选择 配置属性 -> VC++目录依次将如下信息填入配置项,如果需要编译x64位驱动只需要将x86改为x64即可,此处以x86为例。
  • 可执行文件:
    C:\WinDDK\bin
    C:\WinDDK\bin\x86

    包含目录:
    C:\WinDDK\Include\km
    C:\WinDDK\Include\um
    C:\WinDDK\Include\winrt
    C:\WinDDK\Include\shared

    引用目录+库目录
    C:\WinDDK\Lib\win7\km\x86


  • 6.配置C/C++优化选项配置属性 -> C/C++ -> 所有选项 -> 依次修改下方几个关键处,如果你需要编译X64驱动需将调用约定改为__fastcall (/Gr)然后将预处理器定义中的_X86_改为_AMD64_即可编译64位驱动了,此处以X86配置为例。
  • 安全检查:禁用安全检查 (/GS-)
    将警告视为错误:是 (/WX)
    警告等级:等级 3 (/W3)
    启用C++异常:否
    调用约定:__stdcall (/Gz)
    优化:已禁用 (/Od)
    运行库:多线程调试 (/MTd)

    预处理器定义: _X86_;_DDK_;_WIN32_WINNT=0x0501;WINVER=0x0501;_NDEBUG;DBG=0;%(PreprocessorDefinitions)


  • 7.接着需要配置连接器选项,选择连接器 -> 所有选项 -> 依次修改下方几个关键处。
  • 附加选项:/IGNORE:4078 /safeseh:no
    附加依赖项:ntoskrnl.lib;ndis.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib
    固定基址:此处需要为空
    忽略所有默认库:是 (/NODEFAULTLIB)
    启用增量链接:否 (/INCREMENTAL:NO)
    驱动程序:驱动程序 (/Driver)
    入口点:DriverEntry
    生成清单:否 (/MANIFEST:NO)
    生成调试信息:是 (/DEBUG)
    生成映射文件:是 (/MAP)
    数据执行保护:是 (/NXCOMPAT)
    随机基址:此处需要清空
    子系统:本机 (/SUBSYSTEM:NATIVE)


  • 8.上方的配置已经基本完成了,接着我们编写一段驱动初始化代码,然后按下F7即可完成驱动的编译。

    • #include <ntddk.h>
    • VOID UnDriver(PDRIVER_OBJECT driver)
    • {
    •     DbgPrint(("Uninstall Driver Is OK \n"));
    • }
    • NTSTATUS DriverEntry(IN PDRIVER_OBJECT Driver, PUNICODE_STRING RegistryPath)
    • {
    •     DbgPrint(("hello lyshark \n"));
    •     Driver->DriverUnload = UnDriver;
    •     return STATUS_SUCCESS;
    • }

    [color=rgb(51, 102, 153) !important]复制代码

    9.最后我们生成一个驱动开发模板,依次选择文件->导出模板->项目模板->下一步->完成即可完成模板的导出。
  • 此时关闭VS工具,再次打开,就能直接使用我们的模板来开发驱动了,不需要每次都配置。
  • [






附件下载:
attach]999[/attach]


资源下载.txt

172 Bytes, 下载次数: 1

售价: 3 金钱  [记录]  [购买]

VS2013+WDK8.1 驱动开发环境配置

相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
快速回复 返回顶部 返回列表