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

一. 主机OS为Win8.1 x64,在此OS上安装VS2013 With Update5和WDK8.1

二.在虚拟机中装好64位的Win8.1系统。并在VirtualBox中配置一下网络,把网络连接方式改为“桥接网卡”,“界面名称”选择你的真机上能上网的那块网卡。
为什么要用“桥接网卡”方式来让虚拟机中的系统联网,而不用默认的“网络地址转换(NAT)”?因为如果使用“网络地址转换(NAT)”的话,对于虚拟机来说,你的真机相当于路由器,虚拟机相当于你的子局域网下的一台机器。也就是说你的真机和虚拟机并不在一个局域网中,你们在“网上邻居”中看不到彼此,那样的话你通过计算机名无法访问到虚拟机,那样搞起来会比较麻烦。所以使用“桥接网卡”方式。VMware中也有类似的设置。如果测试机器也是真机的话,只要开发机器和测试机器都连到同一个路由器上就没有问题了。


然后配置一下串口,如下图所示,启用串口,端口编号COM1,端口模式“主机管道”,路径/地址(即管道名字)设为“\\.\pipe\com_1”。


端口模式里面的其它模式是什么意思呢?简单来说:
“未连接”:效果就是对虚拟机来说,它的电脑主板上有串口,但是什么都没插。
“主机管道”:就是把虚拟机的串口映射到宿主机(我们的真机)的命名管道上,命名管道是Windows系统提供的一种进程间通信的方式,用过命名管道的程序员一定对上面这个“\\.\pipe\”很熟悉。
“主机设备”:就是把虚拟机的串口映射到宿主机的真实串口上,这时,我们真机的主板上的串口就不属于我们了,变成了虚拟机的私有财产去了,当我们在真机的窗口上插个设备上去后,实际上是插到了虚拟机里。
“裸文件”:貌似是把虚拟机的串口映射到一个宿主机中的一个文件句柄上?然后用ReadFile和WriteFile读写?没用过
“TCP”:把虚拟机的串口映射到宿主机的socket套接字上
当然这里只是科普一下,实际操作选“主机管道”并输入“\\.\pipe\com_1”就行了,其中的“com_1”是管道名,自己取的,你可以自己取一个不一样的。

三.进入虚拟机中的系统,首先关闭UAC,然后启用系统的Administrator用户账户并设置密码。因为待会儿要在VS中输入虚拟机的计算机名、用户名、密码进行连接,完成后重启一下虚拟机。

四.在开发机的WDK安装目录下找到“WDK Test Target Setup”安装包,安装WDK8.1的时候如果是安装到默认路径,那么应该在“C:\Program Files (x86)\Windows Kits\8.1\Remote”文件夹下,有ARM、X64、X86版,由于我的测试机是64位系统,故选择X64文件夹下的“WDK Test Target Setup x86-x86_en-us.msi”,把这个安装包拷出来拿到虚拟机里进行安装。WDK10的路径可能有所不同,但只要在WDK安装目录下搜索“Remote”或“WDK Test Target”就能找到。

五.在开发机器上打开VisualStudio,点击"DRIVER"-"Test"-"Configure Computers",如果VS没有"DRIVER"这个菜单项,说明WDK没有装好。

在弹出的"Computer Configuration"对话框中点击"Add New Computer",然后在"Computer name"中输入虚拟机的计算机名,下面的选项第一项“Provison computer and automatically configure debugers”是全自动,方便是方便,不过它不会自动设置调试串口。所以选择第二项“Provision computer and choose debuger settings”。

点击下一步,照着下图进行设置,连接方式"串口",波特率默认115200,勾选管道,勾选自动重连,管道名"\\.\pipe\com_1",然后点击下一步。最好关闭两个系统的防火墙。


如果连接成功的话会要求你输入虚拟机Administrator的用户名和密码。如果出现连接失败,请检查你的真机和虚拟机能否相互ping同,你在网络邻居(网络)中能否看到彼此的计算机名。

五.安装虚拟机系统对应的符号表,并在VS的工程中设置:或配置环境变量:在系统的环境变量中新建一个_NT_SYMBOL_PATH系统变量,值为C:\symbols;


六.打开VS2013,建立新工程,即可看到新的驱动工程项目。新建一个Networking的NDIS工程。VS为我们生成的解决方案中有两个项目,其中Driver用于生成驱动程序文件,Package用于部署安装测试驱动。打开KMDF Driver Package项目的属性对话框,找到"配置属性"-"Driver Install"-"Deployment",在此选项卡上,勾选"Enable deployment","Target Computer Name"就选择刚才配置好的虚拟机的机器名。"Driver Installation Options"选择"Hardware ID Driver Update",然后输入ID,ID输什么呢,可以在KMDF Driver项目中的inf文件里找,inf文件里的[Standard.NT]节中有ID,照着填入即可,然后点确定。

* KDPrint没有输出的解决办法:

在虚拟机的OS中创建   

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Debug Print Filter]

DEFAULT=dword:0000000f

重启虚拟机,重启后需要重新配置连接下。

* Debug NDISlwf driver

1. 将Build出来的.cat, .sys, .inf文件拷贝到虚拟机中。

2. 在虚拟机中安装驱动,步骤如下,

(1) 打开“网络和共享中心”。
(2) 右击“本地连接”或“无线网络”,选择“属性”。
(3) 在弹出的“本地连接 属性”对话框中选中“常规”属性页,点击“安装”按钮。
(4) 在弹出的“选择网络组件类型”对话框中选中“服务”,然后点击“添加”按钮。
(5) 在弹出的“选择网络服务”对话框中点击“从磁盘安装”按钮。
(6) 在弹出的“从磁盘安装”对话框中点击“浏览...”按钮。“netsf.inf”文件,点击“打开”按钮,确定。
(7) 在弹出的“选择网络服务”对话框中选中“Passthru”,点击“确定”按钮。
(8) 在安装过程中对弹出的数字签名对话框都要点击“确认”按钮。
(9) 安装完成后,“Passthru”就出现在了组件列表中

3.在VS中启动Debug,并设置断点。

4.在虚拟机中管理员权限下的CMD中输入net strart nidslwf,如果没有进入断点,先stop一下,再start,这样应该就能进入断点了。


使用VS2015+WDK10+WKD10可能遇到的问题

An SDK corresponding toWDK version '8.1' was notfound
这是因为没有安装  windows 10 sdk 导致的,安装完后即可。



Project properties
Debugging
Remote Computer Name, drop down and select Configure...







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
VS2015+WDK10是指在Windows 10系统下搭建驱动开发环境的组合。首先需要安装Visual Studio 2015 Enterprise,然后再安装WDK 10。注意,WDK10必须在安装VS2015之后进行安装安装完成后,可以在VS2015的界面菜单上看到driver菜单,从而可以进行驱动开发。\[1\] 在搭建环境时,可以选择下载Community版本的VS2015,因为这个版本是免费且功能齐全的。安装包的大小大约为7G左右。安装完成后,需要选择安装Visual C++和Windows 10 SDK。\[3\] 通过搭建VS2015+WDK10的环境,可以在Windows 10系统上直接新建驱动项目并编译通过,然后在Win7及以上的系统上运行。这样可以避免自己制作模板等繁琐的步骤。\[2\] #### 引用[.reference_title] - *1* [Win10下VS2015(WDK10)驱动开发环境配置](https://blog.csdn.net/liuyez123/article/details/50857621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [VS2015+WDK10+Win10 Win7以上系统驱动发开环境搭建](https://blog.csdn.net/wlanye/article/details/94962999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [VS2015 + WDK10](https://blog.csdn.net/qq_25867649/article/details/54598506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值