人们都说在干正事之前,得先做足前戏才会爽,我一直很认同这个观点,下面我来总结下进行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. HBase集群搭建

    HBase集群搭建 搭建环境:假设我们的linux环境已经准备好,包括网络.JDK.防火墙.主机名.免密登录等都没有问题,而且一定要有zookeeper.下面我们用3台linux虚拟机来搭建Hbase ...

  2. 【转】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了

    只要是需要进行联网获取数据的APP,那么不管是版本更新,还是图片缓存,都会在本地产生缓存文件.那么,这些缓存文件到底放在什地方合适呢?系统有没有给我们提供建议的缓存位置呢?不同的缓存位置有什么不同呢? ...

  3. 自己动手做jQuery插件

    前言:这种东西随意可以在网上收到,这里我还是只是记下自己的见解和领. 第一种方式 (function ($) { $.extend({ sayHello: function (name) { aler ...

  4. js 判断当前的手机系统类型

    <script language="javascript">window.onload = function () {alert("1");var ...

  5. 根据不同的屏幕宽度引入不同的css文件

    <link rel="stylesheet" href="css/jl_public.css?v=11"/> <link rel=" ...

  6. js打印图形

    1. js绘画金字塔 思想:先画n-i个空格,再画2*i-1个*号,再画n-i个空格(此处可以省略),一行画完之后换行:循环下一行(先判断每行的空格数和*号与行数间的关系) var  n=window ...

  7. Trapping Rain Water [LeetCode]

    Problem Description: http://oj.leetcode.com/problems/trapping-rain-water/ Basic idea: Get the index ...

  8. 漫谈iOS Crash收集框架

    漫谈iOS Crash收集框架   Crash日志收集 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,C ...

  9. protobuf 安装 及 小测试

    参考:http://shift-alt-ctrl.iteye.com/blog/2210885 版本: 2.5.0 百度云盘上有jar包. mac 上安装: 新建:/Users/zj/software ...

  10. BZOJ1595 [Usaco2008 Jan]人工湖

    直接模拟...从最低的开始向两边拓展= = /************************************************************** Problem: 1595 ...