windows驱动入门,DDK中例子的实用方法

转载 2012年03月25日 11:37:11

转http://www.cnblogs.com/yzhe/archive/2010/02/04/1663797.html

首先,windows下驱动开发,要有一整套的开发调试工具。在本例子中要用到如下工具:

windbg -- Windows下内核模式驱动调试的一大利器。(microsoft开发的哦!很好找的)。

vmware 5.5.4虚拟机,安装windows XP sp2的虚拟机。(用于远程调试windows驱动,省着开两台机器,具体配置方法下面会介绍的。)。

Visual C++ 6.0,

Windows DDK 3790.1830

什么你没有?赶紧去找啊。

在VMware中将系统配置为调试模式,为虚拟机添加一个com口设备,用管道的方式连接到主系统。

在虚拟机的属性页

选择其中的Edit virtual machine settings->hardware->add->next->serial port->output to named pipe-next.

设置中选择:

Named pipe

\\.\pipe\com_1

this end is the server

the other end is an application

按确定完成。

启动虚拟机

进入系统后修改系统分区下的boot.ini文件(通常该文件是隐藏的,只要在资源管理器的“工具”->“文件夹选项”->“查看”在“高级设置”中将,“隐藏受保护的操作系统文件 (推荐)”前的对号取消,选中“显示系统文件夹内容”和“显示隐藏文件”,按“确定”返回,就可以查看,将boot.ini文件的内容改成如下形式。

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - DEBUG" /noexecute=optin /fastdetect /bootlog /debug /debugport=COM1: /baudrate=115200

保存文件。重启系统,就会看到启动菜单,其中显示:

“Microsoft Windows XP Professional"”和“Microsoft Windows XP Professional - DEBUG”两个选项。

如果选前面的一个,就会正常启动系统,后面的一个是我们要用到的系统调试运行模式,如果不调试驱动,不要选择第二中启动方式,(系统启动速度会很慢的)。

下面来说明实用windbg的联机调试方法。

启动windbg 选择菜单“File”->“Kernel Debug”->“com”

将Baud Rate设置为“115200”,port设置为“\\.\pipe\com_1”,选中“reconnect”,“pipe”,这里需要等一下在按确定,将虚拟机启动到启动菜单时,选择第二项,进入调试模式。这时再按Windbg中的确定。如果连接成功,会出现类似这样的提示

“Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE”

“Kernel Debugger connection established.”

证明已经建立成功了。

选择DDK中最简单的例子。对应文件在,DDK安装目录的“src\general\cancel”路径下,由于我要在xp下调试这个驱动,所以在DDK菜单中选择“Build Environments”->“Windows XP”->“Windows XP Checked Build Environment”启动命令行,进入到上面目录“DDK安装目录\src\general\cancel\sys”命令行中输入make(windows xp下为nmake命令)回车确定,经过一段构建就会在当前目录的“objchk_wxp_x86\i386”下生成一个cancel.sys文件。在进入“DDK安装目录\src\general\cancel\exe”文件下,实用make命令建立测试文件。同样在当前目录的相对路径“objchk_wxp_x86\i386”下可以发现canclapp.exe文件。将上面的sys和exe文件复制到wmvare中,(对于安装vmwaretools的虚拟系统可以直接用鼠标拖拽到虚拟机中,在虚拟机的命令行下运行cancelapp.exe回去在看看Windbg,你就会看到,测试系统和windbg的操作已经联动了。可以在windbg中按ctrl+pausebreak暂停调试系统的运行。在windbg的命令行中输入g就可再次继续运行系统。

再在文件中添加一点个性化的东西。打开“DDK安装目录\src\general\cancel\sys”下cancel.c文件,在“DriverEntry”函数中添加如下代码

开始的位置dprint("This is a driver debug test !!!");

保存文件。再次按照上面的方法构建cancel.sys文件。构建成功后,再把cancel.sys文件拷贝到虚拟机中运行一下canclapp.exe看看windbg中?我们添加的东西显示出来了吧?。

驱动运行时的安装方法,可以参考cancel例子exe目录下的install.c和testapp.c文件,里面提供了标准的内核模式驱动安装的例程,


微软DDK驱动开发教程

  • 2010年06月10日 10:16
  • 373KB
  • 下载

实现ubb代码的java类

  • 2003年10月05日 00:00
  • 31KB
  • 下载

WinDDK+VS2010驱动环境配置

1. 安装VS2010,WDK7.60(GRMWDK_EN_7600_1) 2. 新建VC 控制台项目(选择为空项目) 3. 新建项目配置“driver” ,点击下拉按钮-点击(配置管理器) ...
  • laowu_csdn
  • laowu_csdn
  • 2016年01月30日 10:12
  • 1207

Windows驱动开发VS2012 DDK/WDK的环境配置

[作者简介]      常用网名: 灯火阑珊     出生日期: 1995.XX.XX     生理特征: 男     个人网站: geons.cn     E-mail:     109070096...
  • u012541747
  • u012541747
  • 2016年02月19日 00:45
  • 3374

windows 驱动开发 DDK与WDK WDM的区别

最近尝试去了解WINDOWS下的驱动开发,现在总结一下最近看到的资料。   1.首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要...
  • swanabin
  • swanabin
  • 2014年11月22日 14:54
  • 2116

windows驱动开发技术详解 VC6与DDK搭配使用的设置

在《windows驱动开发技术详解》中作者提供了两种调式内核程序的方法,有两种编译驱动的办法,一种是用DDK环境来编译,需要在源代码所在目录下创建两个文件makefile和Sources,另一种为vc...
  • huangxiangbo316
  • huangxiangbo316
  • 2015年08月07日 15:10
  • 1515

使用DDK提供的build进行编译驱动一点总结

DDK通过调用build工具进行编译以及链接代码,而build又是通过传递一些编译的参数调用nmake工具进行解析makefile文件(其中,makefile文件中指定了需要编译的文件的依赖关系,指定...
  • duhaomin
  • duhaomin
  • 2013年11月21日 17:55
  • 2934

DDK编译驱动程序

驱动程序的编译和运行        首先,假设我们有驱动程序目录如下:        MinDriver         |--MAKEFILE   :DDK本身提供...
  • wcg19921010
  • wcg19921010
  • 2016年10月28日 21:34
  • 396

MVC基础入门——最基础小例子

Mvc在学习《Headfirst》的时候,就接触过了。对于这个庞大的模式。非常的感兴趣。Mvc就是设计模式的升华。 在没有接触过Mvc的时候,一直都是在使用的三层架构,使用的UBD三层来做项目。对于这...
  • zc474235918
  • zc474235918
  • 2014年11月23日 23:24
  • 2293

NT式驱动安装卸载

TestDDK125096.sys #include void TestDDK125096Unload(IN PDRIVER_OBJECT DriverObject) { DbgPrint("...
  • qq125096885
  • qq125096885
  • 2015年05月20日 23:19
  • 474
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:windows驱动入门,DDK中例子的实用方法
举报原因:
原因补充:

(最多只允许输入30个字)