Windows驱动开发环境搭建:VS2013+WDK8.1
你的Windows驱动开发环境之所以搭建不成功,是因为你没有看这篇博客
1.安装包准备
- Visio Studio2013: https://pan.baidu.com/s/1P77yeSKuE7mWllcpVUKtrQ 提取码:sbav
- WDK8.1:https://www.microsoft.com/en-us/download/details.aspx?id=42273
- VMware Workstation: https://pan.baidu.com/s/1LNhuddA_tNtFsicOiMhW0Q 提取码:hkts
- Windows 7 x64系统镜像:https://pan.baidu.com/s/17uMSeqLM6VrLHPdCuwfiIw 提取码:v818
- 驱动开发测试的工具集,包括DriverMonitor,DebugView,WinObj等:https://pan.baidu.com/s/1n1RCBRiancAIM2c4myzRCQ 提取码:j1j3
2.安装顺序
2.1. 安装vs2013和WDK8.1
先安装vs2013,再安装WDK8.1,安装完成后,vs界面如下:
2.2.VMware Workstation
安装VMware Workstation。安装完成后,新建虚拟机,按照下述步骤,然后点击“开启此虚拟机”,等待安装完成即可。
2.3.安装Vmware Tool
安装完成以后,在VMware Workstation软件界面菜单栏点击“虚拟机”,选择“安装Vmware Tool”,按照提示完成安装。安装Vmware Tool方便我们直接从本地宿主机上直接复制文件到虚拟机中。
接下来可以把DriverMonitor和DebugView两个文件夹直接复制到虚拟机中。
这里说一下为什么需要虚拟机。我们要测试自己开发出来的驱动程序,其实在本机上也是可以的,但是因为驱动程序是和内核打交道,用本机不太放心,可能一些尝试性的操作会损坏本机系统,比如导致蓝屏等,影响本机开发,所以需要另一台机器。另一台机器可以是一台实实在在的电脑,但没有必要,直接用虚拟机当测试机即可。
2.4.开启Test Mode
虚拟机里以管理员模式打开cmd,输入bcdedit /set testsigning on,回车,重启后,测试模式开启。在桌面右下角有标识测试模式的水印。
3.测试
3.1.简单的驱动代码
开启VS2013,新建一个Empty WDM Driver,项目名我命名为“TestDriver”。工程建好后默认生成两个项目,TestDriver和TestDriver Package,移除掉TestDriver Package。在TestDriver下添加一个test.c的文件,加入下述代码:
#include <wdm.h> NTSTATUS DriverUnload(PDRIVER_OBJECT driver)
{UNREFERENCED_PARAMETER(driver);DbgPrint("Unload driver");return STATUS_SUCCESS;
}NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING regpath)
{UNREFERENCED_PARAMETER(regpath);driver->DriverUnload = DriverUnload;DbgPrint("Hello world");return STATUS_SUCCESS;
}
这是一个最简单的驱动程序,仅包含DriverEntry驱动入口程序和一个卸载例程DriverUnload,两个函数里都用DbgPrint函数打印了两行log,这两行log可以在虚拟机里的DbgView里看到。
编译之前,点击“配置管理器”,活动解决方案平台选择x64,因为虚拟机里的win7系统是64位的,所以这里我们也要选择x64。
3.2.属性里设置签名和证书
在项目属性里,按照下图选择签名方式Test Sign,在Test Certificate里选择“Create Test Certificate”:
签名这个过程是必须的,没有签名,驱动文件在虚拟机上安装不了,这是微软的要求。
3.3.编译工程
接下来编译工程,编译成功后在工程文件夹 x64文件夹下的Win7Debug下会生成如下文件:
第一个文件是证书,第二个inf文件是安装信息,sys文件是驱动安装文件。
3.4.拷贝文件至虚拟机
将整个x64文件夹下的Win7Debug文件夹都拷贝到虚拟机里。
3.5.安装证书
在虚拟机中打开Win7Debug文件夹,右键单击TestDriver.cer,弹出的菜单中选择安装证书。安装完成后回弹出对话框,提示证书安装完按成。
3.6.管理员身份打开DbgView
在虚拟机中,以管理员身份打开Dbgview,在Capture菜单里勾选Capture Kernel, Enable Verbose Kernel Output, Pass-through,Capture Events:
3.7.管理员身份打开DriverMonitor,安装卸载驱动
以管理员身份打开DriverMonitor,选择TestDriver.sys的路径,进行安装或者卸载驱动,可以在Dbgview里看到我们在代码里写的打印信息。
按照上述步骤,驱动开发环境就算搭建成功了,接下来就可以进行驱动开发了。
Windows驱动开发环境搭建:VS2013+WDK8.1相关推荐
- windows驱动开发环境搭建以及helloworld
文章目录 前言 编译环境-WDK的安装 搭建测试驱动的虚拟机 win11虚拟机 win10虚拟机 在测试机器上运行驱动 修改注册表-显示调试信息 上面驱动代码含义 测试证书签名 其他 旧版本的visu ...
- Windows编程—Windows驱动开发环境搭建
文章目录 前言 步骤 步骤一 步骤二 步骤三 连接测试 步骤四 步骤五 总结 前言 作为一个编写Windows程序的开发人员,对Windows驱动开发 并非必需要掌握,但是掌握 Windows驱动开发 ...
- windows驱动开发——环境搭建
1.安装工具 WinDBG http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx dbgView ...
- Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建
这个配置相较与Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建 要简单的多,不需要每次创建驱动工程时配置这么多的参数 下载WDK开发安装包,我已经 ...
- Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建
本帖通过Augusdi的一篇博文进行重新总结 第一步:安装Visual stdio 2010 1.安装VS2010 第二步:安装WDK安装包 2.安装WindowsDriverKit7-GRMWDK_ ...
- 配置windows驱动开发环境
配置windows驱动开发环境 撰写:jiftle 时间:2011-09-09 14:30 windows驱动开发需要wd ...
- ESP32开发 0.windows Vscode开发环境搭建,基于esp-idf-V4.2 | Cmake | Vscode插件
一 前言 入坑嵌入式以来,一直都在寻找一款通用MCU控制器:他应有优秀的计算处理能力.丰富的外设扩展能力.支持有线/无线联网.小巧的封装.自从ESP8266爆火以来,熟悉过它的使用,但窘于硬件限制,只 ...
- vs2010 wdk c语言,Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc
Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc [置顶]Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验) 分类: 驱动开发 ...
- windows phone开发环境搭建
windows phone开发环境搭建 转载于:https://blog.51cto.com/yirisu/579302
最新文章
- 一个与生命起源有关的悖论终于得到了解决
- linux resin 自动启动不了,Resin 安装-配置-自启动-Linux
- 实力打脸: 量子隐形传输与 “瞬间移动” 毫无关系
- 开源虎墩同名电影《小虎墩大英雄》定档大年初一
- android 只能输入汉字,EditText限制输入的几种方式及只显示中文汉字的做法
- pca数学推导_PCA背后的统计和数学概念
- linux内核相关知识
- 【华为云技术分享】漫谈LiteOS-端云互通组件-MQTT开发指南(上)
- [luogu2286][HNOI2004]宠物收养场【平衡树】
- 【预测模型】基于BP神经网络预测股票matlab代码
- IDEA 2018.2.5最新版破解到2100年图解教程
- 破解XP 管理员Administrator密码
- 公司网盘间的风云变幻PK赛
- python web.py 网页开发
- 用Matlab求拐点和凹凸区间需要使用MATLAB
- 新思创OA办公自动化解决方案
- Vue3.x动态路由、命名路由和编程式导航
- SIFT特征提取和匹配
- ARC混编 -fobjc-arc -fno-objc-arc
- 5G NR 下行调度算法流程
热门文章
- Erase flash,Erase NVRAM命令与
- 大数据深度学习下的车辆结构化——明景车辆结构化分析
- C#调用摄像头的几种方式
- html5不可修改,5 款不可缺席的 HTML5 编辑器
- 【速达软件】速达3000系列、V3、S3批量更改税率
- 计算机网络网上花店毕业论文,网上花店(毕业论文).doc
- Chrome浏览器扩展开发之自动化操作页面
- android中国象棋游戏源码,经典的android 象棋源码,象棋规则完整。
- 基于宝塔面板的ZFaka(发卡程序)一键脚本
- android多个视频叠加,音频混合,视频字幕