Win10x64-WDM设备驱动开发入门 - 第六章 VMware-Win10x64+WDK10+VS2015/2019环境搭建与双机调试
VMware-Win10x64+WDK10+VS2015/2019环境搭建与双机调试
- 1、驱动程序的开发语言选择
- 调用约定
- 运行时函数的调用
- 2、配置驱动开发环境1--vs2015+SDK+WDK10
- 查看 win10 的版本
- 如何下载 sdk
- 如何下载 wdk
- 安装 Visual studio 2015
- 安装 sdk
- 安装 wdk
- Win10 驱动程序示例
- Vmware--Win10x64
- 创建串口
- 启用系统保护
- 3、配置驱动开发环境2--vs2015+SDK+WDK10
- 虚拟机中安装 WDK Test Target Setup xxxxx.msi
- 虚拟机中关闭 “ 驱动证书检测程序 ”
- VS2015 基本配置(配置远程调试设备)
- 有一个坑
- 重启 win10 ,禁用驱动程序签名
- 驱动安装工具 SRVINSTW.EXE
- Win10x64 中安装 WDM 驱动
1、驱动程序的开发语言选择
调用约定
运行时函数的调用
2、配置驱动开发环境1–vs2015+SDK+WDK10
查看 win10 的版本
- win10最好用专业版,因为企业版问题非常多,主机是专业版,虚拟机也要是专业版,这点要注意。
如何下载 sdk
Windows SDK 存档
大家看上图,15063这是vs2015自带的,这里我装了两套,我又装了SDK 17134,然后我又装了WDK 17134,这个我们一定要对应上,如果不对应上,编译的时候会出问题。
如何下载 wdk
以前的WDK版本和其他下载
- 大家看上图,这里我的win10版本是1803,按照上图要求应该用vs2017,但是我们还是用的vs2015,只要sdk和wdk版本对应上就可以,当然用vs2017、vs2019都是可以的。
安装 Visual studio 2015
安装 sdk
安装 wdk
Win10 驱动程序示例
https://github.com/Microsoft/Windows-driver-samples
Vmware–Win10x64
cn_windows_10_consumer_editions_version_2004_x64_dvd
http://www.win10com.com/win10jiaocheng/14029.html
- 注意,win10一定要选择安装专业版(上面链接)。
在虚拟机中安装完win10操作系统后,关闭虚拟机。
创建串口
注意:最好把 “ 打印机 ” 删除掉。`
启用系统保护
“创建系统还原点”
- vs2015在创建调试设备的时候,最后一步它会帮我们创建系统还原点。
3、配置驱动开发环境2–vs2015+SDK+WDK10
这节我们看下,vs2015远程调试虚拟机上win10的驱动。
虚拟机中安装 WDK Test Target Setup xxxxx.msi
- 安装下图这两个远程驱动调试工具:
该工具所在位置如下图所示,x86有一个,x64也有一个:
虚拟机中关闭 “ 驱动证书检测程序 ”
VS2015 基本配置(配置远程调试设备)
- 输入虚拟机中计算机的名字:
Network host name 对应你虚拟机中win10的计算机名称:Win102020CXAZZF
上面的用户模式 User Mode 设置为TCP就可以了,这个比较方便。
Pipe name 这一项你要设置成跟虚拟机串口的一样:\.\pipe\com_1
Target Port 这一项你设置成跟上面的端口号一样就行 com_1 。
- 然后开始复制文件、安装很多服务并进行相应配置:
有一个坑
vs2015默认会在虚拟机的win10中安装很多服务,如下图所示,WDKRemoteUser这个账号默认是带密码的,就会造成在上图安装远程调试的时候是失败的,因为有密码它登不上,我们的解决办法是重启系统用administrator登录,右击我的电脑,打开管理:
把上图这两个密码框设置为空,点确定就行了,这样的话这个远程账号就是空密码,然后我们把虚拟机中的这个win10关闭,重启电脑的时候用这个WDKRemoteUser账号登录,然后再来重新在vs2015中Driver->Test->Configure Devices,按照上面那些步骤配置远程调试设备。
如上图所示开始复制文件、安装驱动,大家一定要注意这个坑,一定要清除WDKRemoteUser这个账号的密码,然后重新登陆进行VS的配置,然后就成功了,会帮我们安装上下图所示的各种工具。
此时还不能通过vs2015对虚拟机中的驱动进行远程调试,还需要禁用驱动程序签名。
重启 win10 ,禁用驱动程序签名
- 点击右下角的通知、所有设置、更新和安全、恢复、立即重新启动:
这个时候用vs2015再远程调试虚拟机中的驱动就可以了,点击vs2015中的调试、附加到进程,弹出的窗口中传输那里选择Windows Kernel Mode Debugger,限定符那里选择我们创建好的远程主机名,可用进程那里选Kernel,然后点附加:
点完附加后vs2015中的Windbg就开始等待虚拟机中的远程主机重启了,虚拟机中win10重启的时候,一定要按照前面所说的“重启win10,禁用驱动程序签名”的步骤进行重启。
驱动安装工具 SRVINSTW.EXE
- 这个时候不要点浏览,因为它默认只识别exe格式的文件,复制我们要测试的驱动所在的路径粘贴到这个编辑框里,记得再路径最后添加反斜杠\,再把我们驱动的文件名复制下来粘贴到反斜杠后面:
- 驱动器目标名这里选空,直接下一步,然后选手动。
- 安装上这个驱动之后,管理员模式启动控制台,输入下图所示命令启动我们这个驱动:
- 在vs中点击暂停、继续,如果你发现vs没有相应虚拟机中驱动的启动、停止卸载的话,那就需要重启虚拟机中win10,重新让vs连接才行。
Win10x64 中安装 WDM 驱动
第一步:添加过时硬件
第二步:安装我手动从列表选择的硬件
然后点击“下一步”,选择“所有设备”,再点击“下一步”
第三步:从磁盘安装
选择“inf 文件”
Win10x64-WDM设备驱动开发入门 - 第六章 VMware-Win10x64+WDK10+VS2015/2019环境搭建与双机调试相关推荐
- Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析
一.VFS 虚拟文件系统基础概念 Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在.虚拟文件系统,即VFS(Virtual File System)是 ...
- VxWorks设备驱动开发指南--VxBus And VxBus Device Driver
8D Spaces Reliability & Stability & Efficiency 目录视图 摘要视图 订阅 VxWorks设备驱动开发指南(二)--VxBus And Vx ...
- 【Linux开发】linux设备驱动归纳总结(六):3.中断的上半部和下半部——tasklet...
linux设备驱动归纳总结(六):3.中断的上半部和下半部--tasklet xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- linux设备驱动归纳总结(六):2.分享中断号【转】
linux设备驱动归纳总结(六):2.分享中断号 转自:http://blog.chinaunix.net/uid-25014876-id-90837.html xxxxxxxxxxxxxxxxxxx ...
- 《嵌入式设备驱动开发精解》——导读
前言 嵌入式设备驱动开发精解 本书的编写主要是针对从事嵌入式软件开发人员.本书的内容主要涵盖ARM CPU以及各种常用外部设备驱动开发的方方面面,包括各种硬件接口.硬件接口协议说明以及各种外设的使用及 ...
- Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用
关与设备树的概念,我们在Exynos4412 内核移植(六)-- 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用 Device Tree是一种描述硬件的数据结构,设备树源(De ...
- 【驱动】linux设备驱动·字符设备驱动开发
Preface 前面对linux设备驱动的相应知识点进行了总结,现在进入实践阶段! <linux设备驱动入门篇>:http://infohacker.blog.51cto.com/6751 ...
- linux设备驱动归纳总结(六):3.中断下半部之tasklet
CU首页 ┊ fh265>>博客 微博 相册 个人中心 好友 消息 [退出] ┊ 随便看看 公告:缅怀Dennis Ritchie活动开赛啦! 小白的博客--提升自已,分享别人 xiaob ...
- linux 设备驱动 ppt,linux设备驱动开发详解讲座ppt
PPT内容 这是linux设备驱动开发详解讲座ppt下载,主要介绍了设备驱动简介:建立和运行模块:字符驱动:调试技术:并发和竞争:分配内存:硬件通讯:中断处理:块设备驱动,欢迎点击下载. 嵌入式Lin ...
- 《Linux设备驱动开发详解(第2版)》隆重出版
Linux设备驱动开发详解(第2版)(前一版狂销3万册,畅销书最新升级) [新品] 点击看大图 基本信息 * 作者: 宋宝华 * 出版社:人民邮电出版社 * ISBN:97 ...
最新文章
- 硬件断点反跳似乎_高性能应用程序:多路复用,反跳,系统字体和其他技巧
- 尝试编辑虚拟磁盘时服务器遇到错误,虚拟磁盘Linux服务端测试及故障处理有哪些呢?...
- 如何记录数据表信息的变更
- beetle.express针对websocket的高性能处理测试
- 经典算法题每日演练——第二十一题 十字链表
- python写sql语句_简单的(笨的)用python以及SQL语句书写增删改查
- lua如何打印行号_LUA教程错误信息和回跟踪(Tracebacks)-34
- 电商库存详解:三层(销售层、调度层、仓库层)来看库存设计
- 扩展欧几里得exgcd算法 acm寒假集训日记22/1/12
- win10 Python开发环境搭建 PyCharm IDE安装
- 关于用Linux桌面版当工作系统这件事
- webservice系统学习笔记8-简单的权限校验
- nlogn 最长不下降子序列
- 数据库SQL语言的使用
- 遥控三通直升机飞行原理简介
- stata 导出 相关系数表_【BBtime】戏说会计论文---stata简单实操
- 监控服务器时间无法修改怎么办,监控服务器目录修改时间
- vue中将水印加在页面的某一部分
- oracle总帐的重估逻辑,OraEBSR12GL日记账业务操作23:汇率重估模板定义
- Python的包安装工具——pip命令大全