第9章 Windows设备驱动程序设计 Windows200的设备驱动程序 WDM的核心概念和数据结构 WDM驱动程序的结构 WDM驱动程序的编程实例
1 ØWindows 2000的设备驱动程序 ØWDM的核心概念和数据结构 ØWDM驱动程序的结构 ØWDM驱动程序的编程实例 第9章 Windows设备驱动程序设计
Windows2000的设备驱动程序 用户模式 核心模式 驱动程序 驱动程序 文件系统 PnP 遗留设备 小端口 驱动程序 驱动程序 驱动程序 驱动程序 WDM 视频小端口 SCS小端口 NDIS小端口 驱动程序 驱动程序 驱动程序 驱动程序 类 驱动程序 驱动程序
2 Windows 2000的设备驱动程序 用户模式 驱动程序 核心模式 驱动程序 文件系统 驱动程序 遗留设备 驱动程序 PnP 驱动程序 小端口 驱动程序 WDM 驱动程序 类 驱动程序 小 驱动程序 视频小端口 驱动程序 NDIS小端口 驱动程序 SCSI小端口 驱动程序
indow2000的设备驱动程序 用户模式驱动程序 Win32多媒体驱动 虚拟设备驱动程序VDD 其他保护子系统的驱动程序
3 Windows 2000的设备驱动程序 •用户模式驱动程序 Win32多媒体驱动 虚拟设备驱动程序VDD 其他保护子系统的驱动程序
indow2000的设备驱动程序 核心模式驱动程序 PnP驱动程序 WDM驱动程序 小端口驱动程序 文件系统驱动程序 遗留设备驱动程序
4 Windows 2000的设备驱动程序 •核心模式驱动程序 PnP驱动程序 WDM驱动程序 小端口驱动程序 文件系统驱动程序 遗留设备驱动程序
Windows2000的设备驱动程序 WDM驱动程序 以 Windows nt40的内部结构为基础,同时 引入了 Windows9x的即插即用特性 在 Windows98和 Windows200间实现源代码 级兼容
5 Windows 2000的设备驱动程序 WDM驱动程序 以Windows NT 4.0的内部结构为基础,同时 引入了 Windows 9x的即插即用特性 在Windows 98和Windows 2000间实现源代码 级兼容
WDM的核心概念和数据结构 设备和驱动程序的分层 FiD DO 上层过滤器驱动程序 FDO 功能驱动程序 iDo|-下层过滤器驱动程序 DO 线职动程序 6
6 WDM的核心概念和数据结构 FiDO FDO FiDO PDO 上层过滤器驱动程序 功能驱动程序 下层过滤器驱动程序 总线驱动程序 IRP •设备和驱动程序的分层
WDM的核心概念和数据结构 设备和驱动程序的分层→总线驱动程序 总线驱动程序负责枚举连接在该总线上的所有 设备并进行必要处理 g Microsoft为大多数总线如PCI、 PnPIsa、SCSI 以及USB等提供了驱动程序 机器中每种类型的总线都有相应的总线驱动程 序 a总线枚举时驱动程序识别其上的设备并为其创 建一个物理设备对象
7 F总线驱动程序负责枚举连接在该总线上的所有 设备并进行必要处理 FMicrosoft为大多数总线如PCI、PnPISA、SCSI 以及USB等提供了驱动程序 F机器中每种类型的总线都有相应的总线驱动程 序 F总线枚举时驱动程序识别其上的设备并为其创 建一个物理设备对象 WDM的核心概念和数据结构 •设备和驱动程序的分层¾¾®总线驱动程序
WDM的核心概念和数据结构 设备和驱动程序的分层→功能驱动程序 矿功能驱动程序是一个设备的主要驱动程序,它知 道如何控制设备的主要功能 σ功能驱动程序为它的设备提供操作接口,处理对 设备的读/写,并管理设备的电源策略 矿功能驱动程序创建一个功能设备对象FDO放在设 备栈中
8 F功能驱动程序是一个设备的主要驱动程序,它知 道如何控制设备的主要功能 F功能驱动程序为它的设备提供操作接口,处理对 设备的读/写,并管理设备的电源策略 F功能驱动程序创建一个功能设备对象FDO放在设 备栈中 WDM的核心概念和数据结构 •设备和驱动程序的分层¾¾®功能驱动程序
WDM的核心概念和数据结构 设备和驱动程序的分层→过滤器驱动程序 过滤器驱动程序过滤对每个设备、每一类设备 或一条总线的JO请求 过滤器驱动程序是可选择的
9 WDM的核心概念和数据结构 •设备和驱动程序的分层¾¾®过滤器驱动程序 F过滤器驱动程序过滤对每个设备、每一类设备 或一条总线的I/O请求 F过滤器驱动程序是可选择的
WDM的核心概念和数据结构 驱动程序对象( driver object ⅠO管理器使用驱动程序对象来代表每个设备驱 动程序,驱动程序对象描述了驱动程序载入到 物理内存的什么地方,驱动程序的大小和它的 主要入口点。 驱动程序对象是一个数据结构,其格式由 DRIVER OBJECT定义
10 WDM的核心概念和数据结构 •驱动程序对象(driver object) I/O管理器使用驱动程序对象来代表每个设备驱 动程序,驱动程序对象描述了驱动程序载入到 物理内存的什么地方,驱动程序的大小和它的 主要入口点。 驱动程序对象是一个数据结构,其格式由 DRIVER_OBJECT定义