搭建Windows驱动开发环境

准备工作如下:

1、下载Wmware、windbg、Windows Driver Kits

2、搭建Wmware和windbg环境

3、调试第一个驱动程序


第一步忽略

第二步

1、在WMware中安装一个操作系统,XP或win7...(以XP为例)

2、修改C:盘目录下的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

修改后:

[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 /debug /debugport=com2 /baudrate=115200

3、修改WMware选项设置。Hardware-->Serial Port  设置串口,截图如下


4、在真实的机器上安装windbg.在桌面上建立一个windbg.exe的快捷方式。右键属性。在快捷方式选项卡中修改目标:"D:\Program Files\Debugging Tools for Windows\windbg.exe" -b -k com:port=\\.\pipe\com_2,baud=115200,pipe


环境设置完毕。
5、建立一个目录first,编写一个驱动代码first.c 内容如下:
#include <ntddk.h>




VOID DriverUnload(PDRIVER_OBJECT driver)
{
DbgPrint("first: Our driver is unloading..\r\n");
}


NTSTATUS DriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg_path)
{
#if DBG
_asm int 3
#endif
DbgPrint("first: Hello,my salary!");
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}

编写makefile文件(固定的)
#
# DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want to add a new source
# file to this component.  This file merely indirects to the real make file
# that is shared by all the components of NT OS/2
#
!INCLUDE $(NTMAKEENV)\makefile.def

编写SOURCES文件,内容如下
TARGETNAME=first
TARGETTYPE=DRIVER
SOURCES=first.c

j将makefile SOURCES 和 first.c放到first目录下,
6、打开Windows Driver Kits --->tool-->Build Environment--->Windows XP 命令行工具,切换到first目录。输入build.
7、将生成first.sys文件,拷贝到虚拟机中。
8、打开windbg  设置File->Symbol File Path

File->sources file path

当这些弄好之后,我们就准备调试了。
先关闭真实机器上的windbg.
9、在虚拟机中用工具安装first.sys文件,在真实机器中打开windbg. 打开虚拟机命令行工具 sc start first 启动驱动,这个时候虚拟机出现卡死状态,
接着在windbg中按g,然后程序就会断点到_asm int 3。接着我们就可以像vs一样调试程序了。截图如下:


睡觉了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值