WDM结构详解:设备对象与驱动程序种类

需积分: 5 203 下载量 165 浏览量 更新于2024-08-16 收藏 228KB PPT 举报
Windows设备驱动程序设计是操作系统与硬件交互的关键组件,本文主要聚焦于Windows XP中的WDM(Windows Driver Model)基本结构。WDM是一种高级的驱动程序架构,它在Windows 98和Windows 2000中引入,旨在提高驱动程序的稳定性和兼容性,特别是支持电源管理和源代码级的即插即用(PnP)功能。 首先,设备对象是WDM的核心组成部分,它是系统为管理硬件而创建的数据结构,包含PDO(物理设备对象)、FDO(功能设备对象)和FiDO(过滤器设备对象)。PDO代表了设备的物理特性,而FDO则代表设备的功能,负责设备的初始化、I/O操作和中断处理。FiDO作为过滤器,位于I/O管理器、FDO和PDO之间,负责监视和修改I/O请求流水线(IRP),提供了上层和下层两种类型的过滤器驱动程序,允许硬件或软件开发者定制和增强设备的交互行为。 设备对象栈形象地展示了驱动程序的层级结构,从上至下包括:用户态的应用程序、Win32子系统、I/O系统服务、I/O管理器、FDO、FiDO(可能有多个层级)、PDO以及底层的总线驱动程序。总线驱动程序负责设备与硬件之间的物理连接,功能驱动程序则管理FDO所代表的设备,确保设备能被正确初始化和进行I/O操作,并且为用户提供统一的接口。 WDM驱动程序主要分为两类:类驱动程序(Class Driver)和小驱动程序(Miniport Driver)。类驱动程序是为特定设备类别提供通用支持的驱动,例如声卡、网卡等,而小驱动程序则是由设备制造商提供的,针对其特定硬件的定制驱动,实现了厂家专有的功能。 特别提到了虚拟设备驱动程序(VDD),它使得DOS应用程序和Windows 9x系统能够访问硬件,同时也能支持对端口访问。显示驱动程序作为内核模式驱动程序,专门负责图形显示和打印设备的控制。文件系统驱动程序则实现了标准的文件系统模型,如目录结构和文件命名规则。 保留设备驱动程序是Windows NT早期版本使用的,它们直接控制硬件,无需依赖其他驱动程序,并且可以在Windows 2000中无缝运行。这些驱动程序在旧系统中扮演着重要角色,但在WDM时代,它们逐渐被标准化的驱动程序结构所取代。 WDM的引入极大地提升了Windows设备驱动程序的灵活性和兼容性,使得硬件开发者可以更轻松地开发和维护驱动程序,同时也为用户提供更好的设备管理体验。理解并掌握WDM的基本结构对于编写高效、稳定的驱动程序至关重要。