Win7+vmware+xpsp3+vs2010驱动开发环境搭建及调试方法

本文,系09年笔记记录整理,当时只有大概的步骤,最近又搭建环境,顺道比较详细的整理一下,以供自己备查。较之前的笔记,只是DDK和VMWARE的版本增高了,基本步骤还是大差不差。

注意:

如果是初次搭建环境,请大概浏览完全篇后,再参照本文搭建环境。

一、工具描述

主机:Win7 (原来是:XP sp3)

虚拟机:vmware9.0 +XP sp3

WinDBG :DDK安装完成后即有

DDK:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso

注:

主机:hostOS

虚拟机:guestOS

代码来自于网络,详细如下:

#include <ntddk.h>

// 提?供?一?个?Unload函ˉ数簓只?是?为a了?能ü够?支§持?动ˉ态?卸?载?,?防え?止1驻痢?留?内ú存?

VOID DriverUnload(PDRIVER_OBJECT driver)

{

// 但?什?么′都?不?做?,?只?打洙?印?一?句?话°:

DbgPrint("first: Our driver is unloading...\r\n");

}

// DriverEntry,?入?口ú函ˉ数簓。£相à当獭?于瞞ain。£

NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)

{

#if DBG//调獭?试?命ü令?

//       _asm int 3

#endif

// 这a是?我ò们?的?内ú核?模£块é的?入?口ú,?可é以?在ú这a里?写′入?我ò们?想?写′的?东?西÷。£

// 我ò在ú这a里?打洙?印?一?句?话°。£

DbgPrint("first: Hello, world!...\r\n");

// 设Θ?置?一?个?卸?载?函ˉ数簓便?于?这a个?函ˉ数簓能ü退?出?。£

driver->DriverUnload = DriverUnload;

return STATUS_SUCCESS;//返う?回?成é功|,?否?则ò不?执′行D

}

二、具体步骤

guestOS设置比较简单,具体操作如下:

添加串口:

VM->settings->hardware->add

选择 serial

设置如下图所示:

修改guestOS的boot.ini文件

在文件最末行添加如下内容:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com2 /baudrate=115200

debugport=com2,要根据你虚拟出来的串口号来设置。

本人电脑里设置的是COM2,如上图所示。

注意:

1、boot.ini 文件在C:根目录下,修改booti.in文件时,需要设置文件夹选项,详见下图的标注。

2、波特率

进入系统(虚拟机),修改串口的波特率为115200,默认建立的时,波特率是9600。

电脑右键->属性->硬件->属性管理,在弹出的框框里找到COM2修改即可。

虚拟机(guestOS)上的配置基本完成。

hostOS配置:

安装DDK

版本:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso,在微软网站可以下载到。

DDK的安装,可以使用DEAMON tools 安装即可。

WinDBG设置:

创建一个windbg的快捷方式

右击windbg快捷图标,并在属性下的目标内容后面,

添加“-k com:port=\\.\pipe\com_1,baud=11520,pipe”后,确定即可。

设置符号路径

WinDbg->菜单->File->Symbol File Path或“Ctrl+S”打开设置窗体,符号路径一般有两个两者以分号隔开。

1、是你设置保存系统DLL的PDB文件的路径

直接从微软网站下载,下载时一定要注意版本,也就是要和你的操作系统版本一致。

Symbol下载地址中

http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx

例如

我将其安装在E:\WINDOWS\Symbols,则在框中输入“E:\WINDOWS\Symbols”

2、驱动的PDB的路径,即你驱动生成所在的目录。

配图是原图,新搭环境的盘符与09年搭环境时有区别,需注意。

至此,hostOS(主机)需要设置的基本完成。

联调基本步骤:

启动虚拟机

选择 XP的调试版本,先不要按“回车键”。

主机(hostOS)上运行Windbg程序。

运行虚拟机上的XP系统(在虚拟机的 debug选项上按 “回车”)

hostOS上的windbg 出现如下信息:

虚机启动后如下:

后来发现是“symbol”搞错了。

新hostOS是WIN7(32bits),老的是WINXP

第一次装的symbol(Windows_Win7SP1.7601.17514.101119-1850.X86FRE.Symbols)是对应于WIN7的,

所以报上面的错误。

后重新下载并安装

WindowsXP-KB936929-SP3-x86-symbols-full-ENU,就正常了。

设置路径:

Windbg中“restart”后:

Windbg界面的命令行窗口输入“bu driver!driverentry”(不分大小写哦)

在驱动的DriverEntry函数的入口点下一个延迟断点,driver是你的驱动名字。

在虚拟机上加载驱动程序

这里使用instDrv工具,网上搜索能搜到。

hostOS上的WINDBG不能断点下来。

狠是邪门

后来,用DDK命令行编译驱动,用相同的方法,最终在驱动源文件里能断点下来。

而新搭建的环境采用VS2010来配置环境,编译驱动。开始怀疑VS2010的编译问题,后经过对比发现:

用VS2010编译时,未能生成PDB文件。

设置VS2010,如下所示:

再次重复前面调试驱动步骤,成功断点下来。

Win7+vmware+xpsp3+vs2010驱动开发环境搭建及调试方法相关推荐

  1. Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建

    本帖通过Augusdi的一篇博文进行重新总结 第一步:安装Visual stdio 2010 1.安装VS2010 第二步:安装WDK安装包 2.安装WindowsDriverKit7-GRMWDK_ ...

  2. Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建

    这个配置相较与Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建 要简单的多,不需要每次创建驱动工程时配置这么多的参数 下载WDK开发安装包,我已经 ...

  3. vs2010 wdk c语言,Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc

    Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc [置顶]Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验) 分类: 驱动开发 ...

  4. windows驱动开发环境搭建以及helloworld

    文章目录 前言 编译环境-WDK的安装 搭建测试驱动的虚拟机 win11虚拟机 win10虚拟机 在测试机器上运行驱动 修改注册表-显示调试信息 上面驱动代码含义 测试证书签名 其他 旧版本的visu ...

  5. QQ玩一玩(轻游戏)开发环境搭建与调试

    玩一玩开发环境搭建与调试 前言 Android 调试 下载Android Studio 配置环境变量 进入用户当前目录 设置环境变量 设置生效 检查配置是否正常 下载特殊版测试Q 调试时Android ...

  6. Windows编程—Windows驱动开发环境搭建

    文章目录 前言 步骤 步骤一 步骤二 步骤三 连接测试 步骤四 步骤五 总结 前言 作为一个编写Windows程序的开发人员,对Windows驱动开发 并非必需要掌握,但是掌握 Windows驱动开发 ...

  7. Windows驱动开发环境搭建:VS2013+WDK8.1

    你的Windows驱动开发环境之所以搭建不成功,是因为你没有看这篇博客 1.安装包准备 Visio Studio2013: https://pan.baidu.com/s/1P77yeSKuE7mWl ...

  8. 驱动开发环境以及双机调试环境搭建

    工作将近三个月了,做了几个项目,想在这里总结一下,方便以后自己或者大家借鉴.最近一个项目里需要做一个文件过滤驱动,我打算把整个过程中遇到的坑和解决方法,总结一下.这篇博客主要帮助大家实现驱动程序的开发 ...

  9. windows10 驱动开发环境搭建vs2019 helloworld

    因为特殊原因需要搭建win10驱动环境, 因此学习了一下 但是发现win10环境特别麻烦 vs2022已经出来了,但是没看到驱动支持, 因此还是选择vs2019 提前准备 1 查看系统版本 2 下载v ...

  10. eclipse+gcc STM32开发环境搭建及调试

    记录一下本人进行eclipse+gcc stm32开发环境的搭建过程,以便后续学习使用 参考资料如下: CubeMX+Eclipse+Jlink STM32开发环境搭建_小裘HUST的博客-CSDN博 ...

最新文章

  1. 「鸡娃」是家长无处安放的「应试」焦虑
  2. java创建线程的2种方式
  3. GitHub热门:程序员的架构师封神之路
  4. eclipse自动关闭的原因
  5. 模拟 Codeforces Round #249 (Div. 2) C. Cardiogram
  6. 2018年第九届蓝桥杯 - 国赛 - C/C++大学B组 - B. 激光样式
  7. C#——一个简单的文件管理器
  8. stripfxg php,zzcms v8.2 中的众多cve分析
  9. Kindle Collection编辑器
  10. PXE远程CentOS安装anaconda报错
  11. spss因子分析结果解读_AMOS进行问卷分析中效度分析之验证因子分析教程 ——【杏花开生物医药统计】...
  12. pt电阻测温c语言算法,铂电阻测温仪的设计与实现
  13. 计算机u盘驱动坏了如何的修复,u盘损坏怎么修复 u盘损坏再次使用
  14. 邀请函 · Android 9 Pie 技术分享会直播
  15. 【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议
  16. python代码画樱花教程-python画樱花树代码 具体代码介绍
  17. 蛋白质集合c语言算法,利用蛋白质序列的预测方法
  18. apk安装,解析包时出错
  19. 低成本精准营销助推中小企业度过经济寒冬
  20. vcruntime140_1.dll丢失的解决方法(仅一招解决)

热门文章

  1. MySQL数据库的内连接、左连接、右连接、全连接/联合查询
  2. C语言: gotoxy函数
  3. android apk 防止反编译技术第一篇-加壳技术
  4. java 格雷码_在 Java 中使用递归的方式将二进制转换为等效的格雷码
  5. 把mysql数据展示为图表_怎么从数据库中调出数据并生成动态图表?
  6. 打开Spyder的三种方式
  7. 蓝桥杯历年省赛真题汇总及题目详解
  8. 区块链(BlockChain)基础概念
  9. 图像处理边缘处理:Roberts算子和canny算子,对圆与矩阵进行识别
  10. Arcgis数据集如何以线性单位做投影