Windows Minifilter驱动 - 调式 (4)
写不论什么程序动态调试是很重要的。驱动开发也不例外。
通常如今写驱动的时候,都是在VM上跑的,调试手段基本也是本地windbg + 虚拟机。
虚拟机配置
我用的是win7,
第一步,看以下。成功运行后,会提示:
The entry was successfully copied to {xxxxxxxxxxxxxxxxxxx}
第二步:
继续在CMD中输入bcdedit /debug {xxxxxxxxxxxxxxxx} on
{xxxxxxxxxxxxxx}就是前面一步输出的GUID,用来唯一标识这个启动入口。
这样即可了,能够用bcdedit /dbgsettings来查看
VM配置
须要给VM配置一下,
先添加一个串口配置
选择output to namedpipe
输入一个名字
WinDbg连接
从file菜单里面点击Kernel debug
点击ok。
然后启动VM,选择刚才新加的启动入口
登录Windows后,启动驱动,就会发现Windbg里面能够看到log了。
在Windbg里面打开源文件,再设置pdb文件,就能够单步跟踪了。使用windbg能够大大提高开发效率。
Windows Minifilter驱动 - 调式 (4)的更多相关文章
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)
catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...
- windows设备驱动安装指南
高观点下的设备驱动安装(overview) 一.windows是怎样安装设备的? 第一步:新设备的识别 在给一个新设备安装驱动之前,总线或集线器(hub)驱动会为连接到PC上的设备分配一个硬件ID(h ...
- Windows内核驱动中操作文件
本页主题:如何在windows内核驱动中对文件操作,实现对文件的拷贝.粘贴.删除.查询信息等,这是很常用也是很简单的方法. 部分内容参考:http://www.cppblog.com/aurain/a ...
- Linux和Windows设备驱动架构比较
毕业后一直在学操作系统, 有时候觉得什么都懂了,有时候又觉得好像什么都不懂,但总体来说自认为对操作系统实现机制的了解比周围的人还是要多一些.去年曾花了几个星期的晚上时间断断续续翻译了这篇对Linux和 ...
- 【转贴】Windows virtio 驱动
Windows virtio 驱动 https://blog.51cto.com/dangzhiqiang/1833615 去年去中建总部的时候用过. 发现很多搞openstack的人都不清楚这一块的 ...
- Windows 7 驱动开发
本文是对Win7(64)+VS2010+WDK7.1.0(WinDDK\7600.16385.1)开发驱动的小结. 一.系统工具 1.Win7(amd64位)系统 注:已装系统后,管理员身份运行cmd ...
- windows设备驱动安装接口(自己仿写)
/***************************************** Author:foo_hack This is File named:Setup.h The Funtion Im ...
- windows内核驱动内存管理之Lookaside使用
Windows内存管理中使用了类似于容器的东西,叫做Lookaside对象,每次程序员申请内存都会从Lookaside里面申请,只有不足的时候,Lookaside才会向内存又一次申请内存空间,这样减少 ...
- Windows 2008驱动安装失败的原因及解决方法
希望这些内容能够帮助各位朋友顺利地在Windows Server 2008系统环境下安装使用好各种设备的驱动程序! 寻找安装失败原因 一般来说,当我们将目标设备的驱动安装光盘正确放置到Windows ...
随机推荐
- ICE学习第二步-----从第一个程序了解ICE(HelloWorld)
ICE(Internet Communications Engine)是一种面向对象的中间件平台,主要用于网络通讯.它为面向对象的“客户端-服务器”模型的应用提供了一组很好的工具和API接口.目前在全 ...
- yii框架的foreach 已经优化好了,可以“$user_model->attributes=$_POST['Admin'];”
yii框架的foreach 已经优化好了, 以前我们遍历数组的时候是用foreach循环 foreach ( as $key=>$value){ $user ...
- python进度条代码
import sys import time def view_bar(num,total): rate = num / total rate_num = int(rate * 100) r = ' ...
- C程序设计语言练习题1-16
练习1-16 修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本. 代码如下: #include <stdio.h> // 包含标准库的信息 ...
- QLineEdit
The QLineEdit widget is a one-line text editor. Header: #include <QLineEdit> qmake: QT += widg ...
- go-nsq使用简述
一 环境依赖: golang 开发环境(version >= 1.2) 下源码,配置环境变量,执行安装脚本 gpm 依赖包管理器 ...
- CMD模块定义规范
CMD 模块定义规范 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规 ...
- BZOJ 3107 二进制a+b
Description 输入三个整数\(a, b, c\),把它们写成无前导\(0\)的二进制整数.比如\(a=7, b=6, c=9\),写成二进制为\(a=111, b=110, c=1001\) ...
- 【Java】Java 序列化的高级认识
如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件.那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题.静 ...
- LA 3521 Joseph's Problem
题意:给你正整数n和k,然后计算从i到n k%i的和: 思路:如果n小于1000000,直接暴力计算,然后大于1000000的情况,然后在讨论n和k的大小,根据k%i的情况,你会发现规律,是多个等差数 ...