📄 驱动程序开发工具简介.txt
字号:
VSharedHardwareInt 类
与前一个类相似,不同的只是它的成员函数将返回一个布尔变量标识任务是否完成。
VinChainInt 类
允许你安装一个应用级函数作为中断处理函数。
VInChainV86Int 类
你可以用它处理V86模式的中断。
VinChainPMInt 类
你可以用它处理保护模式的中断。
VPreChainV86Int 类
本类在V86模式程序的软中断调用中前插或者后插一个调用函数。
TimeOuts (一组类的结合)]
VXD驱动可以利用本类实现在指定的时间期限到期以后,系统给VXD一个超时事件通知。
包括以下类:
VAsyncTimeOut
提供异步中断记时服务。
VGlobalTimeOut
记时期限只与系统时钟相关。
VTimeOut
它是其它记时类的基类。
VThreadTimeOut
它提供的记时只与指定的线程的累计运行时间有关。
VVMTimeOut
它提供的记时期限只与特定的VM的运行时间有关。
VHotKey
你可以用它捕捉指定的键盘事件。
VI/O Port
提供实现某个端口虚拟化的功能。
其它类型的类
内存管理和存储类(一组类)
提供对内存管理的功能。
VGlobalV86Area
虚拟机地址空间前一兆内存的分配对象的基类。
VLockedPageObject
内存分配并将此内存锁定的基类。
VPageBlock
分配一系统线性地址连续的已提交的页内存块。
VPageObject
如果一个对象要占用4kb以上的内存,它就应该派生本类,它将重载 new和delete操作符。
VV86Pages
本类提供在内存的第1个1M字节里连续的页内存块。
管道类
实际开发中,通常需要在两个VM之间传递数据。其中的一个方法就是使用管道。管道是建立在先进先出基础上的,它通过读写方法在VM之间传输数据。
同步对象类 (一组类)
同步对象类能够在不能及时获得系统资源时阻塞线程或者阻塞VM的执行,直到系统资源能够获得为止。
包括:
VSemaphone
只是简单地封装了VMM的semaphore服务,在win32下当需要访问特殊资源或限制访问一段代码的线程数量时,它非常有用。
VMutex
提供VMM的互斥对象的服务。
VId
功能与Semaphone相似,速度比它快。
VCallbacks (一组类)
Ring3应用程序可以通过回调用函数类调用VXD中的函数。
VComm
Windows9x支持以VCOMM虚拟机为中心的通信联络。
本类包括通信端口类和端口驱动类。
VRegistryKey
提供在VXD中对注册表的操作能力。
DriverStudio
DriverStudio是CompuWare公司出品的一套Window下的全套驱动开发工具集。
DriverStudio 能加速开发,调试,测试,调整和配置你的VXD,WDM和Windows NT驱动程序。DriverStudio 把高质量的工具和现代的软件工程实践带到了以前被忽略的驱动开发领域。
DriverStudio包括以下工具:
工具 描述 支持平台
DriverWorks DriverWork用于辅助Windows8,Windows ME,Windows NT 4.0 和Windows 2000驱动程序的开发。DriverWork的特色是革命性的向导自动生成设备驱动源程序。 Windows 98 (WDM)Windows Me (WDM)Windows NT 4.0Windows 2000
VTOOLSD VTOOLSD设备驱动开发工具包含用c/c++开发Windows 3.1、Windows9x的VXD所需要的文档,向导,库和例子程序。QuickVxd在整个开发过程中伴随着你。 Windows 3.1,Windows 95Windows 98 (VxD)Windows Me (VxD)
DriverNetworks™ DriverNetworks™设计来用于网络驱动程序开发。DriverNetworks™是一套捕获NDIS对象模型到一组简洁的类的c++类库,并且提供一个快速,高效,且面象对象的方式来写NDIS内核模型驱动的的框架。 Windows 95Windows 98Windows Me Windows NT 4.0Windows 2000
DriverAgent DriverAgent提供Win32程序直接存取和控制硬件的能力。你可以用它快速地生成一个用于硬件测试的驱动原型,独立的诊断包减少相关设备驱动的复杂性,兼有编程简单,性能接近本地驱动的最终用户应用程序在很少的时间内就能完成。 Windows 95,Windows 98,Windows Me,Windows NT 4.0, Windows 2000
SoftICE SoftICE提供超越传统Windows SDK/DDK工具能力的强劲特性来减少调试时间。SoftIce独特的宽范围系统察看和控制能力使它很容易定位和诊断很多种类的Windows软件问题。 Windows 95,Windows 98,Windows Me,Windows NT 4.0, Windows 2000
DriverWorkbench DriverWorkbench提供易于多种设备驱动开发,测试和调试的能力。包括崩溃分析,FieldAget配置,BoundsChecke事件查看器,基于TrueTime 驱动开发版的性能分析。 Windows 95,Windows 98,Windows Me,Windows NT 4.0, Windows 2000
BoundsChecker Driver Edition BoundsChecke驱动开发版本可以查看系统内核的所有调用。另外可以探测参数错误,BoundsChecke保留一个选定的驱动程序所作操作的记录。这个记录可用于SoftIce和Driver Workbench。 Windows 9x,Windows NT 4.0,Windows 2000
TrueTime 驱动开发版 TrueTime是一个帮助你找到并修复你的驱动程序性能瓶颈的性能分析工具。 Windows NT 4.0,Windows 2000
TrueCoverage 驱动开发版 TrueCoverage驱动开发版是一个帮助你发现你的驱动代码中哪部分已经测试,哪部分仍然需要测试的工具。 Windows NT 4.0, Windows 2000
FieldAgent FieldAgent是一个帮助你解决驱动程序棘手的微小问题的工具。它允许你发送一个包含配置信息的BoundsChecker驱动开发版的可再分发版本给你的顾客。捕获的数据可以发回给你以便用DriverWorkBench作分析。 Windows 9x,Windows NT 4.0,Windows 2000
Windriver
WinDriver是一个用于驱动开发的工具包,它将很难的开发任务变得非常轻松。看看它的提示屏幕就可见一般:
它只适合用于开发纯硬件驱动,并且它自动探测插在机器上的硬件的参数。最重要的一点是它的跨平台特性。你在Windows开发的驱动程序不需要作任何修改就可以用于Windows9x,WindowsNT,WindowsCE,Solaris,Linux等系统。
无论您是一位有经验的设备驱动开发者,还是初学者,WinDriver都会使硬件访问变成一件很容易的事。在常规开发环境下,使用WinDriver,您可以在很短的时间内完成访问IO端口和存储区域,处理中断,执行DMA操作及访问PCI和自定义寄存器的工作。这种易用性是通过一个非常强大的组合向导来实现的。这个向导通过一个非常强健的API来分析硬件,自动产生驱动程序代码。您可以在用户模式下使用这个API,这样就不需要学习操作系统的内部原理和内核API(DDK)。
它包括一个功能强大的硬件探测器和调试器。在写入一行代码前,通过一个图形界面,硬件调试器能够对硬件进行全面的测试。这种方式能够使您在写您的驱动程序前,校验硬件是否按照期望的那样工作。
你可以用它自带的WDDEBUG来手工调试你开发的驱动程序,这个工具位于\windrvr\util 目录下。
二、调试工具
SoftIce
CompuWare出品的一个超强调试工具。可运行在Windows9x,Windows NT,Windows 2000平台下。
Trw200
国人编写的一个调试工具,目前只能调试Windows9x下的VXD,并且它本身也只能在Windows9x下运行。优点是可以动态加载(SoftIce只能随操作系统的加载而加载,但稳定性很好)。
WDEB386
微软DDK工具包中自带的调试工具,相信见过SoftIce的开发者一定会将它从硬盘上删除。但在没有其它工具时也只能用它了。
三、驱动程序的编译
你可以用DDK中带的Build实用程序,但笔者推荐使用VC++集成环境作编辑与编译。DriverStudio自动与已经安装的VC++集成在一起。
四、工具的获得
作为研究与学习目的,你可以去它们各自的公司站点下载试用版本,当然你也可以到驱动开发网(http://www.driverdevelop.com)下载除VC、DDK外的所有工具。
(本文发表于《程序春秋》杂志)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -