人们都说在干正事之前,得先做足前戏才会爽,我一直很认同这个观点,下面我来总结下进行windows8.1的WDK调试所要做的准备工作。

软件安装:

1、VS2013。

2、WDK8.1

3、Windows Kits安装目录下的8.1\Romote\x86(x64)\wdk Test Target Setup x86-x86_en-us.exe(远程调试使用)

调试环境设置:

安装WDK8.1之后,驱动开发、部署、调试等工具都集成到VS2013 IDE中了,在进行调试之前,我们需要对开发环境做必要的设置:

1、准备目标主机

msdn文档:Provision a computer for driver deployment and testing (WDK 8.1)查看
1、在目标主机上安装操作系统,并把host、target computer加入相同的域和工作组;安装wdk。
C:\Windows\System32\drivers\etc
2、如果target computer开启了安全启动(secure boot),要关闭它。
3、在target computer上,安装WDK Test Target Setup x64-x64_en-us.msi(在C:\Program Files (x86)\Windows Kits\8.1\Remote\x64目录下)。
4、如果target computer安装的是N或者KN版本的windows,要另外安装媒体特性包,详见msdn文档。
5、如果target computer安装的是windows server,那么WDK Test Target Setup就会建立一个DriverTest文件夹。找到这个文件夹,右键->属性->在安全标签,给认证用户组以修改的许可。

Verify that the host and target computers can ping each other. Open a Command Prompt window, and enter pingComputerName.

2、目标主机的配置:

安装了WDK8.1之后,VS2013菜单栏多了Driver项。通过层次菜单项Driver->Test->configure computers->add a new computer来配置目标主机:

第一是远程登录,这个好像需要目标主机的管理员账号才行,普通账号不能登录到。

第二是调试的连接类型,有串口、网口、USB口等多种连接类型,大家应该都更倾向于网口吧,简单方便。但需要注意,主机和目标机器都必须是Windows8或以上版本才能采取网口连接方式,如果有任何一台主机是Windows7,那只能采取其他连接方式了。

3、驱动部署到目标机器

打开package属性页(package工程加黑而不是package文件夹加黑),打开Driver Install->Deployment标签页,选择Enable deployment;选择目标主机名;其它默认就可以了。这样,当我们生成解决方案时(注意是package工程),IDE会自动编译驱动工程并自动把驱动部署到目标远程主机上去。生成成功后,目标远程主机会出现这样一个文件夹:c:\DriverTest,我们可以查看此文件夹下是不是出现了我们所要调试的驱动来验证生成成功与否。

注意:在生成解决方案之前,我们要正确选择解决方案配置和解决方案平台。对于我而言这两者分别是Win8.1 debug和X64。

3、安装驱动

在目标机器上,打开设备管理器,按照以下步骤安装调试驱动

  1. In the Action menu, click Add Legacy Hardware, and the Add Hardware Wizard appears. Click Next and then Next again.
  2. In the Add Hardware window, select Show All Devices.
  3. In the Manufacturer list in the left pane, click Microsoft.
  4. You should see the AVStream Simulated Hardware Sample in the Model pane on the right. Click this and then click Next.
  5. Click Next again to install the driver, and then click Finish to exit the wizard.

开始调试:远程驱动调试不能像一般程序那样直接点击开始调试就可以的,要通过工具->附加到进程对话框来设置。譬如调试内核模式驱动,那么传输(transport)选择Windows kernel mode debugger;限定符(qualitier)选择目标机器名。

结束调试:常规结束方法,点击停止调试就可以了。

[windows驱动]windows8.1驱动调试前戏的更多相关文章

  1. Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)

    catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...

  2. Windows内核安全与驱动开发

    这篇是计算机中Windows Mobile/Symbian类的优质预售推荐<Windows内核安全与驱动开发>. 编辑推荐 本书适合计算机安全软件从业人员.计算机相关专业院校学生以及有一定 ...

  3. [windows驱动]内核态驱动架构

    1.windows驱动简介: 1.1 windows组件简介: 1.2 windows驱动类型: windows驱动分为两种基本类型: 用户态驱动在用户态下执行.它们一般提供一套win32应用程序和内 ...

  4. KVM下windows虚拟机使用virtio驱动

    KVM下windows虚拟机默认disk使用的是Qemu IDE硬盘,网卡默认是rtl8139网卡.为了使kvm主机在相同的配置下,有更好的效率,可以将网卡和磁盘替换成virtio的驱动. windo ...

  5. WDF驱动的编译、调试、安装

    编译和调试使用WDK编译,源代码应包括wdf.h,ntddk.h以及KMDF_VERSION=1,编译使用/GS.KMDF包括以下库:1). WdfDriverEntry.lib(编译时绑定):驱动入 ...

  6. 《windows内核安全与驱动开发》ctrl2cap中的ObReferenceObjectByName疑问

    国内有关于windows内核驱动这块的书籍实在是甚少,不过好在<windows内核安全与驱动开发>这本书还算不错(内容方面),但是不得不说这本书在许多地方存在着一些细节上的问题.比如我今天 ...

  7. 《Windows内核安全与驱动开发》 7.1&7.2&7.3 串口的过滤

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 7.1&7.2&7.3 串口的过滤 一.设备绑定的内核API ...

  8. 《Windows内核安全与驱动开发》阅读笔记 -- 索引目录

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 一.内核上机指导 二.内核编程环境及其特殊性 2.1 内核编程的环境 2.2 数据类型 2.3 重要的数据结构 2.4 函数调 ...

  9. 《Windows内核安全与驱动开发》 2.3 重要的数据结构

    <Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 2.3 重要的数据结构 一.驱动对象  Windows内核采用__的编程方式 ...

随机推荐

  1. Css_Backgroud-position(背景图片)定位问题详解

    background-position的说明:    设置或检索对象的背景图像位置.必须先指定 background-image 属性.该属性定位不受对象的补丁属性( padding )设置影响.   ...

  2. C++ Primer 第三章 标准库类型string运算

    1. 标准库类型 string string表示可变长的字符序列,使用string必须首先包含string头文件.如何初始化类的对象是由类本身决定的. int n; string s1;//默认初始化 ...

  3. 【Unity Shaders】初探Surface Shader背后的机制

    转载请注明出处:http://blog.csdn.net/candycat1992/article/details/39994049 写在前面 一直以来,Unity Surface Shader背后的 ...

  4. MySQL 函数积累

    IFNULL(expr1,expr2) // 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值 IF(expr1,expr2,e ...

  5. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  6. Mongoose学习参考文档

    一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entit ...

  7. Qt之QSS(黑色炫酷)

    简述 Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples. 黑色炫酷 - 一款漂亮的QSS风格. 之前博客中分享了很多关于Qt的样式效果,几 ...

  8. OSVERSIONINFO

    OSVERSIONINFO结构 OSVERSIONINFO结构包含了操作系统的版本信息,包括操作系统的主版本号.副版本号.创建号.以及操作系统平台ID号和关于操作系统的其他描述信息.其定义为: typ ...

  9. STL中vector的用法

    vector是标准模板库的一种容器,是可存放各种类型的动态数组. #include<iostream> #include<vector> using namespace std ...

  10. hdu-----(1151)Air Raid(最小覆盖路径)

    Air Raid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...