Windows 驱动程序的类型 - Windows drivers
Microsoft Windows 驱动程序有两种基本类型:
用户模式驱动程序在用户 模式下执行,它们通常提供 Win32 应用程序和内核模式驱动程序或其他作系统组件之间的接口。
例如,所有打印机驱动程序都在用户模式下执行。 有关打印机驱动程序组件的详细信息,请参阅 打印简介。
内核模式驱动程序 在内核模式下以执行环境的一部分来运行,该环境由内核模式操作系统组件组成,这些组件负责管理I/O、即插即用、内存、进程和线程、安全性等。 内核模式驱动程序通常分层。 通常,较高级别的驱动程序通常从应用程序接收数据、筛选数据并将其传递给支持设备功能的较低级别驱动程序。
某些内核模式驱动程序也是符合 Windows 驱动程序模型 (WDM) 的 WDM 驱动程序。 所有 WDM 驱动程序都支持即插即用和电源管理。
与作系统本身一样,内核模式驱动程序作为离散模块化组件实现,这些组件具有一组明确定义的必需功能。 所有内核模式驱动程序都提供一组系统定义的 标准驱动程序例程。
下图将内核模式驱动程序划分为多种类型。
如图所示,驱动程序堆栈中有三种基本类型的内核模式驱动程序:最高级别、中间级别和最低级别。 每种类型在结构中略有不同,但在功能方面也大相径庭:
最高级别的驱动程序。 最高级别的驱动程序包括支持文件系统的文件系统驱动程序(FSD),例如:
NTFS
文件分配表 (FAT)
CD-ROM 文件系统 (CDFS)
最高级别的驱动程序始终依赖于基础较低级别驱动程序的支持,例如中间级别函数驱动程序和最低级别的硬件总线驱动程序。
中间驱动程序,例如虚拟磁盘、镜像或特定于设备的 类驱动程序。 中间驱动程序依赖于基础较低级别驱动程序的支持。 中间驱动程序进一步细分,如下所示:
函数驱动程序 控制 I/O 总线上的特定外围设备。
筛选器驱动程序 将自己插入到函数驱动程序上方或下方。
软件总线驱动程序 提供一组子设备,这些子设备可以让更高级别的类、功能或筛选器驱动程序附加其上。
例如,控制具有内置异类设备的一组多功能适配器的驱动程序是软件总线驱动程序。
导出系统定义的类/微型类接口的任何系统提供的类驱动程序实际上都是具有一个或多个链接的微型类驱动程序(有时称为微型驱动程序)的中间驱动程序。 每个连接的类/微型驱动程序成对提供的功能相当于函数驱动程序或软件总线驱动程序的功能。
最低级别的驱动程序 控制连接到外围设备的 I/O 总线。 最低级别的驱动程序不依赖于较低级别的驱动程序。
硬件 总线驱动程序 是系统提供的,通常控制动态可配置的 I/O 总线。
硬件总线驱动程序与即插即用管理器合作,为连接到驱动程序控制的 I/O 总线的所有子设备配置和重新配置系统硬件资源。 这些硬件资源包括设备内存和中断请求的映射(IRQs)。
直接控制物理设备的旧驱动程序是最低级别的驱动程序。