模块化的设备驱动程序设计方法
介绍了Windows NT下设备驱动程序的开发环境,一种模块化的设计方法,应用程序与驱动程序之间的同步以及驱动程序的安装。
1 引 言
Windows NT/2K以其形象直观的界面、简单方便的操作,基本上已经取代DOS成为测控软件的操作平台。又因为Windows NT/2K出于安全性、稳定性的考虑,为了防止用户应用程序访问和更改重要的操作系统数据,Windows NT/2K使用两种“处理器访问模式”:用户态和核心态。在用户态,应用程序不能直接对硬件进行访问和操作;而在核心态中,程序对任何I/O设备有全部的访问权,还能访问任何虚地址和控制虚拟内存硬件。为了使用户态的程序访问和操作硬件,必须通过某种机制,也就是使用设备驱动程序跨越操作系统的边界对物理硬件进行访问操作。同时提供一些控制接口,进而用户态的应用程序利用设备驱动程序提供的接口间接地对物理硬件进行访问操作。
2 设备驱动程序的开发环境
安装4种软件:Microsoft Visual C++6.0、Platform SDK(Software Develop Kit) for Windows NT、DDK(Device Develop Kit) for Windows NT、DriverStudio2.0 。然后进行一些系统环境变量的设置:
(1)变量名:MSTOOLS,值:SDK在操作系统中的安装路径(如:C:mstools);
(2)变量名:CPU,值:i386;
(3)变量名:BASEDIR,值:DDK在操作系统中的安装路径(如:C:NTDDK)。
在开发驱动程序时,首先要生成DriverStudio需要的库文件vdw.lib(通过编译DriverStudio安装目录下DriverWorksSourcevdw.dsw)。然后运用DriverStudio2.0生成一个编程框架,并删除DriverStudio所生成的编程框架中的所有文件,就可以在这个框架中编写自己的设备驱动程序;编写完以后可以直接在Visual C++6.0下Build生成设备驱动程序*.sys。
3 模块化驱动程序的编写
3.1 设备驱动程序包括的几大模块
设备驱动程序管理实际数据传输和控制物理设备的操作,包括开始和完成I/O操作、处理中断和执行设备要求的任何操作。
一般通用的设备驱动程序可以分为主要4个模块:初始化例程、卸载例程、驱动程序和应用程序之间的数据交换例程、中断服务例程。
3.1.1 初始化例程(DrvierEntry)
是驱动程序的入口。在这个例程中主要包括以下步骤:
(1)初始化Driver对象;
(2)调用IoCreateDevice创建一个Device对象,并通过调用IoCreateSymbolicLinks使设备对Win32子系统可见;
(3)初始化Device对象的DeviceExtension;
(4)查找和分配驱动程序要管理的任何硬件;
(5)把一个设备连接到一个Interrupt对象,如果需要并初始化驱动程序的DPC对象。
相关文章
- 2023-03-02智能化色谱分析软件的研究与应用探讨
- 2024-07-31铁路客车提速轴承外圈非基准端面挡边平行度测量仪的研制
- 2024-02-26实现同一分析周期内两流路并行分析的技术改造
- 2022-04-27监控摄像机日夜及彩色黑白转换两用简析
- 2024-07-09多CCD拼接相机中图像传感器不均匀性校正



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。