欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

【翻译】Winddk翻译(二)--Windows驱动程序种类

【翻译】Winddk翻译(二)--Windows驱动程序种类

Kernel-Mode Driver Architecture: Windows DDK
Windows驱动程序种类
有两种类型的windows驱动:
用户模式驱动(User-Mode Driver) 运行于用户模式下,这种驱动一般提供了一套从Win32应用程序到内核模式驱动或者其他操作系统组件之间的接口。例如,打印机由用户模式驱动和内核模式驱动一起支持。更多打印机驱动组成的信息,请看打印简介。
内核模式驱动(Kernel-Mode Driver) 作为执行体的一部分,运行于运行内核模式下,而执行体则由管理I/O,即插即用,内存,进线程,安全等的内核操作系统组件组成。内核模式驱动一般情况都是分层的。一般地,高层驱动从应用程序那里接收数据,过滤数据,然后将其传送到提供设备功能的下层驱动。
一些内核模式驱动被称为WDM驱动,这些驱动遵守Windows驱动模型(WDM)。所有的WDM驱动支持即插即用,和电源管理。WDM驱动在Windows 98 /Me 和 Windows 2000以及其后的操作系统之间源代码兼容(但不是二进制文件兼容)。
和操作系统本身一样,内核模式驱动是分散的,模块化了的组件,这些组件都具有特定的一系列功能。所有内核驱动都具有了一系列的由系统定义的标准驱动过程(standard driver routine) 。
下图将内核模式驱动分为几种类型。


内核驱动的种类
如上图所述,在驱动栈中有三种基本的内核驱动类型:最高层,中层,和最底层驱动。每种驱动之间结构只是微小的差异,但功能上却有很大的区别。
最高层驱动(highest driver)。最高层驱动包括提供文件系统的文件系统驱动(FSDs) ,列如: NTFS
File allocation table (FAT) 
CD-ROM file system (CDFS) 
最高层驱动总是基于下层驱动的支持,比如中间层功能驱动或最底层硬件总线驱动。
中间层驱动(intermediate dirver),比如虚拟磁盘,映像,或者特定设备类型的类驱动(class driver) 。中间层驱动基于下层驱动的支持。中间层驱动还可细分成如下几种类型: 功能驱动(function driver)控制I/O总线上的特定的外围设备。
过滤驱动(filter driver)将自身插入功能驱动之上或者之下。
软总线驱动(software bus driver)包含一系列的子设备,而包括高层类,功能或者过滤驱动都可以挂钩在这些子设备上。
例如,一个控制多设备多功能适配器的驱动可以称之为软总线驱动。
任何由系统提供的定义系统的类/子类(class/subclass)接口的类驱动(class driver)就功效来说都是一种与多个的子类驱动(miniclass driver) 相联的中间层驱动(有时候也称这种子类驱动为子驱动[minidriver])。每一个类/子驱动(class/minidriver)对提供了功能驱动或者软总线驱动同等的功能。
最底层驱动(lowest driver) 控制了与外设相连I/O总线 。最底层 驱动不基于任何其他下层驱动。 硬件 总线驱动(bus driver) 是由系统提供的,通常用来进行I/O总线的动态配置 。 硬件总线驱动与即插即用管理器一同为所有连接到I/O总线的子设备配置和重新配置系统硬件资源,(硬件总线驱动包括windows2000之前发行的NT构架操作系统的HAL组件的一部分功能。)
传统驱动(legacy driver)直接控制物理设备,是最底层驱动。

Microsoft Corporation
Send feedback on this topic
Built on Friday, February 18, 2005

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功