查看: 39|回复: 0

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

    [复制链接]

    267

    主题

    267

    帖子

    614

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    614
    发表于 2023-1-6 11:36:35 | 显示全部楼层 |阅读模式
    VS2013+WDK8.1 驱动开发环境配置 001.png
    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即可。
    • 002_看图啦.jpg
    • 2.依次选择解决方案视图 -> 源文件 -> 添加新建项,或者直接按下Ctrl + Shift + A快捷打开菜单,并创建main.cpp文件。
    • 003_看图啦.jpg
    • 3.接着我们需要修改一下配置管理器,添加自定义配置管理,选择生成->配置管理器->新建,此处我们命名为MyDDK即可。
    • 004_看图啦.jpg
    • 4.接着修改一下配置属性中的常规属性,点击菜单栏中的调试,选择MyDDK属性->配置->常规 -> 修改以下几处。
    • 005_看图啦.jpg
    • 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

      006_看图啦.jpg
    • 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)

      007_看图啦.jpg
    • 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)

      008_看图啦.jpg
    • 8.上方的配置已经基本完成了,接着我们编写一段驱动初始化代码,然后按下F7即可完成驱动的编译。
      1. #include <ntddk.h>

      2. VOID UnDriver(PDRIVER_OBJECT driver)
      3. {
      4.     DbgPrint(("Uninstall Driver Is OK \n"));
      5. }

      6. NTSTATUS DriverEntry(IN PDRIVER_OBJECT Driver, PUNICODE_STRING RegistryPath)
      7. {
      8.     DbgPrint(("hello lyshark \n"));
      9.     Driver->DriverUnload = UnDriver;
      10.     return STATUS_SUCCESS;
      11. }
      复制代码
      9.最后我们生成一个驱动开发模板,依次选择文件->导出模板->项目模板->下一步->完成即可完成模板的导出。
    • 009_看图啦.jpg
    • 此时关闭VS工具,再次打开,就能直接使用我们的模板来开发驱动了,不需要每次都配置。
    • 010_看图啦.jpg


    附件下载:
    项目模板源码+wdk8.1离线安装包.txt (172 Bytes, 下载次数: 0, 售价: 3 金钱)
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    免责声明:
    1、转载或引用本网站内容须注明原网址,并标明本网站网址“源码资源网”
    2、转载或引用本网站中的署名文章,请按规定向原作者支付稿酬
    3、对于不当转载或引用本网站内容而引起的民事纷争、行政处理或其他损失,本网站不承担责任
    4、对不遵守本声明或其他违法、恶意使用本网站内容者,本网站保留追究其法律责任的权利
    5、资源部分来自网络,不保证资源的完整性,仅供学习研究,如需运营请购买正版,如有侵权请联系客服删除
    6、本站所有资源不带技术支持,下载资源请24小时内删除,如用于违法用途,或者商业用途,一律用于者承担

    QQ|手机版|小黑屋|依星源码资源网-分享编程干货的网站 ( 鲁ICP备2021043233号-3 )

    GMT+8, 2023-2-3 09:22

    邮箱:312337667@qq.com 客服QQ:312337667(工作时间:7:00~23:00)

    © Powered by Net188.com X3.4

    快速回复 返回顶部 返回列表