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环境搭建与双机调试相关推荐

  1. Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析

    一.VFS 虚拟文件系统基础概念 Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在.虚拟文件系统,即VFS(Virtual File System)是 ...

  2. VxWorks设备驱动开发指南--VxBus And VxBus Device Driver

    8D Spaces Reliability & Stability & Efficiency 目录视图 摘要视图 订阅 VxWorks设备驱动开发指南(二)--VxBus And Vx ...

  3. 【Linux开发】linux设备驱动归纳总结(六):3.中断的上半部和下半部——tasklet...

    linux设备驱动归纳总结(六):3.中断的上半部和下半部--tasklet xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  4. linux设备驱动归纳总结(六):2.分享中断号【转】

    linux设备驱动归纳总结(六):2.分享中断号 转自:http://blog.chinaunix.net/uid-25014876-id-90837.html xxxxxxxxxxxxxxxxxxx ...

  5. 《嵌入式设备驱动开发精解》——导读

    前言 嵌入式设备驱动开发精解 本书的编写主要是针对从事嵌入式软件开发人员.本书的内容主要涵盖ARM CPU以及各种常用外部设备驱动开发的方方面面,包括各种硬件接口.硬件接口协议说明以及各种外设的使用及 ...

  6. Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用

    关与设备树的概念,我们在Exynos4412 内核移植(六)-- 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用 Device Tree是一种描述硬件的数据结构,设备树源(De ...

  7. 【驱动】linux设备驱动·字符设备驱动开发

    Preface 前面对linux设备驱动的相应知识点进行了总结,现在进入实践阶段! <linux设备驱动入门篇>:http://infohacker.blog.51cto.com/6751 ...

  8. linux设备驱动归纳总结(六):3.中断下半部之tasklet

    CU首页 ┊ fh265>>博客 微博 相册 个人中心 好友 消息 [退出] ┊ 随便看看 公告:缅怀Dennis Ritchie活动开赛啦! 小白的博客--提升自已,分享别人 xiaob ...

  9. linux 设备驱动 ppt,linux设备驱动开发详解讲座ppt

    PPT内容 这是linux设备驱动开发详解讲座ppt下载,主要介绍了设备驱动简介:建立和运行模块:字符驱动:调试技术:并发和竞争:分配内存:硬件通讯:中断处理:块设备驱动,欢迎点击下载. 嵌入式Lin ...

  10. 《Linux设备驱动开发详解(第2版)》隆重出版

    Linux设备驱动开发详解(第2版)(前一版狂销3万册,畅销书最新升级) [新品] 点击看大图     基本信息 * 作者: 宋宝华       * 出版社:人民邮电出版社     * ISBN:97 ...

最新文章

  1. 硬件断点反跳似乎_高性能应用程序:多路复用,反跳,系统字体和其他技巧
  2. 尝试编辑虚拟磁盘时服务器遇到错误,虚拟磁盘Linux服务端测试及故障处理有哪些呢?...
  3. 如何记录数据表信息的变更
  4. beetle.express针对websocket的高性能处理测试
  5. 经典算法题每日演练——第二十一题 十字链表
  6. python写sql语句_简单的(笨的)用python以及SQL语句书写增删改查
  7. lua如何打印行号_LUA教程错误信息和回跟踪(Tracebacks)-34
  8. 电商库存详解:三层(销售层、调度层、仓库层)来看库存设计
  9. 扩展欧几里得exgcd算法 acm寒假集训日记22/1/12
  10. win10 Python开发环境搭建 PyCharm IDE安装
  11. 关于用Linux桌面版当工作系统这件事
  12. webservice系统学习笔记8-简单的权限校验
  13. nlogn 最长不下降子序列
  14. 数据库SQL语言的使用
  15. 遥控三通直升机飞行原理简介
  16. stata 导出 相关系数表_【BBtime】戏说会计论文---stata简单实操
  17. 监控服务器时间无法修改怎么办,监控服务器目录修改时间
  18. vue中将水印加在页面的某一部分
  19. oracle总帐的重估逻辑,OraEBSR12GL日记账业务操作23:汇率重估模板定义
  20. Python的包安装工具——pip命令大全

热门文章

  1. 生意参谋爬虫难点一 ——十六进制数据解密
  2. 2021深圳杯数学建模D题---基于DDPG算法的微分博弈问题(思路及代码)
  3. Web前端开发规范手册 1
  4. 高速系统设计自学笔记——信号完整性6
  5. 麦克纳姆轮全向移动原理(运动速度方向分析)
  6. 【亲测有效】帝国cms后台admin帐号密码忘记的处理方法
  7. 浅谈IDEA Scratch files万能的临时文件功能
  8. 新能源汽车核心技术: VCU整车控制器、MCU电机控制器、BMS 电池管理系统
  9. SSDP,简单服务发现技术
  10. “配置系统未能初始化” 的异常一种产生原因