




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
什么是驱动程序 为术语 驱动程序 给出单一的准确定义比较困难 就最基本的意义而言 驱动程序是一个软 件组件 可让操作系统和设备彼此通信 例如 假设应用程序需要从设备中读取某些数据 应 用程序会调用由操作系统实现的函数 操作系统会调用由驱动程序实现的函数 驱动程序 由 设计和制造该设备的同一公司编写 了解如何与设备硬件通信以获取数据 当驱动程序从设备 获取数据后 它会将数据返回到操作系统 操作系统将数据返回至应用程序 扩大定义 到目前为止 我们的说明采用以下几种方式进行简单化 并非所有驱动程序都必须由设计该设备的公司编写 在多种情形下 设备根据已发布 的硬件标准来设计 这表示驱动程序可以由 Microsoft 编写 设备设计者无须提供驱 动程序 并非所有驱动程序都直接与设备通信 对于给定的 I O 请求 如从设备读取数据 通常有一些驱动程序 在堆栈中进行分层 参与该请求 可视化堆栈的传统方式是将 第一个参与对象放在顶部 将最后一个参与对象放在底部 如此图所示 堆栈中的某 些驱动程序可能通过将请求从一种格式转换至另一种格式来参与 这些驱动程序不会 与设备直接通信 它们只操纵请求并将请求传递至堆栈下方的驱动程序 堆栈中直接与设备通信的一个驱动程序称为 函数驱动程序 执行辅助处理的驱动 程序称为 筛选器驱动程序 某些筛选器驱动程序遵守并记录有关 I O 请求的信息 但不会主动参与这些请求 例 如 某些筛选器驱动程序充当验证程序以确保堆栈中的其他驱动程序正确处理 I O 请 求 我们可以扩大 驱动程序 的定义 方法是表示驱动程序为遵守或参与操作系统与设备之间通 信的任一软件组件 软件驱动程序 我们的扩大定义相当准确 但仍不完整 原因是某些驱动程序与任何硬件设备根本不关联 例 如 假设你需要编写可以访问核心操作系统数据结构的工具 这些结构仅可以由内核模式下运 行的代码进行访问 可以通过将工具拆分成两个组件来执行该操作 第一个组件在用户模式下 运行且提供用户界面 第二个组件在内核模式下运行且可以访问核心操作系统数据 在用户模 式下运行的组件称为应用程序 在内核模式下运行的组件称为 软件驱动程序 软件驱动程 序与硬件设备不关联 有关处理器模式的详细信息 请参阅用户模式和内核模式 此图说明了与内核模式软件驱动程序通信的用户模式应用程序 其他说明 软件驱动程序始终在内核模式下运行 编写软件驱动程序的主要原因是获取对仅在内核模式下 可用的受保护数据的访问权限 但是设备驱动程序不会始终需要访问内核模式数据和资源 因 此某些设备驱动程序在用户模式下运行 有一系列的驱动程序我们尚未提及 总线驱动程序 若要了解总线驱动程序 你需要了解 设备节点和设备树 有关设备树 设备节点以及总线驱动程序的信息 请参阅设备节点和设备 堆栈 到目前为止 我们的说明过度简化了 函数驱动程序 的定义 我们表示设备的函数驱动程序 为堆栈中直接与设备通信的一个驱动程序 对于直接连接到外围组件互连 PCI 总线的设备而 言 以上为真 PCI 设备的函数驱动程序获取映射到设备上端口和内存资源的地址 函数驱动 程序通过写入这些地址直接与设备通信 但是在多种情形下 设备未直接连接到 PCI 总线 相反设备连接到的主机总线适配器连接到 PCI 总线 例如 USB toaster 连接到主机总线适 配器 称为 USB 主控制器 该适配器连接到 PCI 总线 USB toaster 具有函数驱动程序 USB 主控制器也具有函数驱动程序 toaster 的函数驱动程序与 toaster 间接通信 方法是 将请求发送至 USB 主控制器的函数驱动程序 然后 USB 主控制器的函数驱动程序与 USB 主控制器硬件直接通信 该硬件与 toaster 通信 是否需要编写驱动程序 0 共 1 对本文的评价是有帮助 评价此主题 Microsoft Windows 包含适用于许多设备类型的内置驱动程序 如果有适用于你的设备类型 的内置驱动程序 则不必自行编写驱动程序 你的设备可以使用内置的驱动程序 适用于 USB 设备的内置驱动程序 如果你的设备属于由 USB 设备工作组 DWG 定义的设备类 则可能已经存在适用于该设备 的 Windows USB 类驱动程序 有关详细信息 请参阅支持的 USB 设备类的驱动程序 适用于其他设备的内置驱动程序 目前 Microsoft 为以下其他类型的设备提供内置驱动程序 设备技术和设备技术和 驱动程序驱动程序 内置驱动程序内置驱动程序WindowsWindows 支持支持描述描述 ACPI ACPI 驱动程序 Acpi sys Windows XP 及 更高版本 Microsoft 通过 Acpi sys 驱动程序 和 ACPI BIOS 为 基本的 ACPI 设备 功能提供支持 为 增强 ACPI 设备的 功能 供应商可以 提供 WDM 功能驱动 程序 有关 Windows ACPI 支持 的详细信息 请参 阅 ACPI 设计指南 中的支持 ACPI 设 备 音频 Microsoft 音频类驱动 程序 PortCls sys Windows XP 及 更高版本 Microsoft 通过自 身的端口类驱动程 序 PortCl 为基 本的音频渲染和音 频捕捉提供支持 音频设备的硬件供 应商有责任提供兼 容 PortCl 的适配 器驱动程序 适配 器驱动程序包括初 始化代码 驱动程 序管理代码 包括 DriverEntry 功能 和音频微型端口驱 动程序的集合 有 关详细信息 请参 阅端口类简介 总线 本机 SD 总线驱 动程序 本 机 SD 存储 类驱动程序 和存储微型 端口驱动程 序 sdbus sys sffdisk sys s ffp sd sys Windows Vista 及更高版本 Microsoft 为 SD 读卡器提供如下支 持 操作系统为直 接连接到 PCI 总线 的 SD 主机控制器 提供支持 当系统 枚举 SD 主机控制 器时 会加载本机 SD 总线驱动程序 sdbus sys 如果 用户插入 SD 内存 卡 则除总线驱动 程序以外 Windows 还会加载本机 SD 存储类驱动程序 sffdisk sys 和 存储微型端口驱动 程序 sffp sd sys 如 果用户插入具有其 他类型功能的 SD 卡 例如 GPS 或无 线 LAN 则 Windows 会加载供 应商为该设备提供 的驱动程序 HID HID I2C 驱动程 序 HIDI2C sys Windows 8 及更 高版本 Microsoft 为支持 简单外设总线 SPB 和通用 I O GPIO 的 SoC 系 统上的 HID over I2C 设备提供支持 它通过 HIDI2C sys 驱动程序实现此支 持 有关详细信息 请参阅 HID over I2C HID 传统 游戏端口驱 动程序 HidGame sys Gameenum sys Windows Vista Windows Server 2003 Windows XP 在 Windows Vista 及更早版本中 Microsoft 通过 HidGame sys 和 Gameenum sys 驱动 程序为传统 非 USB 非蓝牙 非 I2C 游戏端口提供 支持 有关详细信 息 请参阅 Windows 中支持的 HID 传输 HID 传统 键盘类驱动 程序 Kbdclass sys Windows XP 及 更高版本 Microsoft 通过 Kbdclass sys 驱动 程序为传统 非 USB 非蓝牙 非 I2C 键盘提供支持 有关详细信息 请 参阅键盘和鼠标 HID 客户端驱动程 序 为增强传统键 盘的功能 供应商 可以提供键盘筛选 器驱动程序 有关 详细信息 请参阅 MSDN 代码库中的 Kbfiltr 示例 HID 传统 鼠标类驱动 程序 Mouclass sys Windows XP 及 更高版本 Microsoft 通过 Mouclass sys 驱动 程序为传统 非 USB 非蓝牙 非 I2C 鼠标提供支持 键盘和鼠标 HID 客 户端驱动程序 为 增强传统鼠标的功 能 供应商可以提 供鼠标筛选器驱动 程序 有关详细信 息 请参阅 MSDN 代码库中的 Moufiltr 示例 HID PS 2 i8042prt 驱动程序 I8042prt sys Windows XP 及 更高版本 Microsoft 通过 I8042 sys 驱动程 序为传统 PS 2 键 盘和鼠标提供支持 为增强 PS 2 鼠标 或键盘的功能 供 应商可以提供键盘 或鼠标筛选器驱动 程序 有关详细信 息 请参阅 MSDN 代码库中的 Kbfiltr 示例和 Moufiltr 示例 映像 设备 的 Web 服 务 WSD 扫描类驱动 WSDScan sysWindows Vista 及更高版本 Microsoft 通过 WSD 扫描驱动程序 wsdscan sys 为 Web 服务扫描程序 程序 即在 Web 上使用 的扫描程序 提供 支持 但是 支持 WSD 分布式扫描管 理的 Web 服务扫描 程序设备必须实现 两个 Web 服务协议 有关详细信息 请 参阅使用设备 Web 服务的 WIA 打印 Microsoft 绘图仪驱动 程序 Msplot Windows XP 及 更高版本 Microsoft 通过 Microsoft 绘图仪 驱动程序 Msplot 为支持惠普图形语 言的绘图仪提供支 持 为增强绘图仪 的功能 你可以创 建由一个或多个绘 图仪特性数据 PCD 文件组成的 微型驱动程序 有 关详细信息 请参 阅绘图仪驱动程序 微型驱动程序 打印 Microsoft PostScript 打印机驱动 程序 Pscript Windows XP 及 更高版本 Microsoft 通过 PostScript 打印机 驱动程序 Pscript 为 PostScript 打印机 提供支持 为增强 PostScript 打印机 的功能 你可以创 建由一个或多个 PostScript 打印机 描述 PPD 文件和 字体 NTF 文件组 成的微型驱动程序 有关详细信息 请 参阅 Pscript 微型 驱动程序 打印 Microsoft 通用打印机 驱动程序 Unidrv Windows XP 及 更高版本 Microsoft 通过通 用打印机驱动程序 Unidrv 为非 PostScript 打印机 提供支持 为增强 非 PostScript 打 印机的功能 你可 以创建由一个或多 个通用打印机描述 GPD 文件组成的 微型驱动程序 有 关详细信息 请参 阅 Microsoft 通用 打印机驱动程序 打印 Microsoft 第 4 版打 印机驱动程 序 Windows 8 及更 高版本 从 Windows 8 开始 Microsoft 提供了 支持 PostScript 和非 PostScript 打印机以及绘图仪 的单个内置类驱动 程序 该驱动程序 可取代 Microsoft 绘图仪驱动程序 Microsoft 通用打 印机驱动程序和 Microsoft PostScript 打印机 驱动程序 该打印 机驱动程序可通过 自身提供基本的打 印支持 无需任何 修改 有关详细信 息 请参阅第 4 版 打印机驱动程序 打印 Microsoft XPS 打印机 驱动程序 XPSDrvWindows Vista 及更高版本 Microsoft 通过 XPS 打印机驱动程 序 XPSDrv 为打 印 XPS 文档格式提 供支持 该驱动程 序扩展了 Microsoft 基于 GDI 的第 3 版打印 机驱动程序体系结 构 可支持消耗 XML 纸张规范 XPS 文档 通过 XPSDrv 打印机驱动 程序 XPS 文档格 式可用作后台打印 文件格式和文档文 件格式 该 XPSDrv 打印机驱动程序可 通过自身提供基本 的 XPS 打印支持 无需任何修改 有 关详细信息 请参 阅 XPSDrv 打印机 驱动程序 传感器 传 感器 HID 类驱动程序 SensorsHIDClassDriver dll Windows 8 及更 高版本 Microsoft 通过 HID 类驱动程序为 笔和触摸设备提供 支持 由于 Windows 8 包括此 HID 类驱动程序和 相应的 HID I2C 及 HID USB 微型端口 驱动程序 因此你 不需要实现自己的 驱动程序 你只需 在指针设备的固件 中报告此白皮书中 描述的使用方法 Windows 将使用你 的固件及其 HID 驱 动程序启用设备的 触摸和指针功能 并为 Windows 触摸 和指针 API 提供访 问该设备的权限 触摸 Windows 指 针设备驱动 Windows 8 及更 高版本 Microsoft 通过 HID 类驱动程序为 笔和触摸设备提供 程序支持 由于 Windows 8 包括此 HID 类驱动程序和 相应的 HID I2C 及 HID USB 微型端口 驱动程序 因此你 不需要实现自己的 驱动程序 你只需 在指针设备的固件 中报告此白皮书中 描述的使用方法 Windows 将使用你 的固件及其 HID 驱 动程序启用设备的 触摸和指针功能 并为 Windows 触摸 和指针 API 提供访 问该设备的权限 WPD 媒体 传输协议类 驱动程序 WpdMtpDr dll WpdMtp dll WpdMtpUs dll WpdConns dll 和 WpdUsb sys Windows Vista 及更高版本 Microsoft 通过媒 体传输协议类驱动 程序为需要连接 Windows 的便携设 备 例如 音乐播 放器 数字相机 手机和健康监控设 备 提供支持 使 用该类驱动程序的 供应商必须在设备 上实现 MTP 类协议 对于静物数字相 机 MTP 实现必须 与 PTP 后向兼容 有关详细信息 请参阅硬件供应商 指南 选择驱动程序模型 4 共 6 对本文的评价是有帮助 评价此主题 Microsoft Windows 提供了多种驱动程序模型 你可以使用这些模型编写驱动程序 最佳驱 动程序模型的选择策略取决于你计划编写的驱动程序类型 下文介绍了这些选项 设备函数驱动程序 设备筛选器驱动程序 软件驱动程序 文件系统筛选器驱动程序 文件系统驱动程序 有关各种类型驱动程序之间差异的介绍 请参阅什么是驱动程序 和设备节点和设备堆栈 以 下部分说明了如何为每种类型的驱动程序选择模型 为设备函数驱动程序选择驱动程序模型 当你设计一个硬件设备时 首先要考虑的事项之一就是你是否需要编写函数驱动程序 提出下 列问题 是否可以完全避免编写驱动程序 如果必须编写函数驱动程序 则最好使用哪个驱动程序模型 若要回答这些问题 请确定设备的何处可以容纳设备和驱动程序技术中介绍的技术列表 参阅 该特定技术的文档 以确定是否需要编写函数驱动程序以及了解哪些驱动程序模型可供设备使 用 某些个别技术具有微型驱动程序模型 在微型驱动程序模型中 设备驱动程序由两个部分组成 一个部分处理常规任务 另一部分处理设备特定的任务 通常 Microsoft 编写通用部分 设 备制造商编写设备特定的部分 设备特定的部分具有多种名称 其中大部分名称都共享前缀 微型 以下是微型驱动程序模型中使用的一些名称 显示器微型端口驱动程序 音频微型端口驱动程序 电池微型类驱动程序 蓝牙协议驱动程序 HID 微型驱动程序 WIA 微型驱动程序 NDIS 微型端口驱动程序 存储器微型端口驱动程序 流微型驱动程序 有关微型驱动程序模型的概述 请参阅微型驱动程序和驱动程序对 并非设备和驱动程序技术中列出的每项技术都有专用的微型驱动程序模型 特定技术的文档可 能会建议你使用内核模式驱动程序框架 KMDF 其他技术的文档可能会建议你使用用户模式 驱动程序框架 UMDF 关键点是你应从研究特定设备技术的文档开始 如果你的设备技术具 有微型驱动程序模型 则必须使用微型驱动程序模型 否则就遵循技术特定的文档中有关是使 用 UMDF KMDF 还是 Windows 驱动程序模型 WDM 的建议 为设备筛选器驱动程序选择驱动程序模型 一些驱动程序频繁参与单个 I O 请求 如从设备读取数据 驱动程序在堆栈中进行分层 并且可视化堆栈的常规方法是将第一个驱动程序放在顶部 将最后一个驱动程序放在底部 堆 栈具有一个函数驱动程序并且还可以具有筛选器驱动程序 有关函数驱动程序和筛选器驱动程 序的介绍 请参阅什么是驱动程序 和设备节点和设备堆栈 如果你准备为设备编写筛选器驱动程序 则确定设备的何处可以容纳设备和驱动程序技术中介 绍的技术列表 查看特定设备技术的文档是否有关于选择筛选器驱动程序模型的任何指南 如 果设备技术的文档未提供此指南 则首先考虑使用 UMDF 作为驱动程序模型 如果筛选器驱 动程序需要访问的数据结构无法通过 UMDF 获取 则考虑使用 KMDF 作为驱动程序模型 在极端少见的情形中 驱动程序需要访问的数据结构无法通过 KMDF 获取 则使用 WDM 作为驱动程序模型 为软件驱动程序选择驱动程序模型 未与设备关联的驱动程序称为 软件驱动程序 有关软件驱动程序的介绍 请参阅什么是驱 动程序 主题 软件驱动程序很有用 原因是这些驱动程序可以在内核模式下运行 这样为其 提供了受保护操作系统数据的访问权限 有关处理器模式的信息 请参阅用户模式和内核模式 有关软件驱动程序 你的两个选项为 KMDF 和旧的 Windows NT 驱动程序模型 使用 KMDF 和旧的 Windows NT 模型 你可以在编写驱动程序时无须考虑即插即用 PnP 和电 源管理 你可以改为专心于驱动程序的首要任务上 使用 KMDF 你不必考虑 PnP 和电源 因为框架会为你处理 PnP 和电源 使用旧的 Windows NT 模型 你不必考虑 PnP 和电源 原因是旧的驱动程序在与 PnP 和电源管理完全无关的环境中运行 我们的建议是使用 KMDF 尤其是当你已熟悉 KMDF 时 如果你希望驱动程序与 PnP 和电 源管理完全无关 则使用旧的 Windows NT 模型 如果你需要编写注意到电源转换或 PnP 事件的软件 则不能使用旧的 Windows NT 模型 必须使用 KMDF 注意 在极少情形中 你需要编写注意到 PnP 或电源事件的软件驱动程序 并且驱动程序需要 访问无法通过 KMDF 获取的数据 则必须使用 WDM 为文件系统筛选器驱动程序选择驱动程序模型 有关为文件系统筛选器驱动程序选择模型的帮助 请参阅 文件系统微过滤驱动程序 和文件 系统筛选器驱动程序 为文件系统驱动程序选择驱动程序模型 有关为文件系统驱动程序选择模型的帮助 请参阅文件系统微过滤驱动程序 相关主题 内核模式驱动程序框架 用户模式驱动程序框架 Windows 兼容硬件开发板 此主题尚未评级 评价此主题 Windows 兼容硬件开发板 比如 Intel Sharks Cove 使你能够为硬件组件开发软件和驱动 程序 这些组件通常将合并到手机 平板电脑和其他高度集成或嵌入的系统中 开发板 Summer 2014 新的 Microsoft 计划将使硬件工程师使用专为特定 SoC 环境设计的经济高 效的开发板更轻松地开发和验证 Windows 驱动程序 硬件工程师过去在为 SoC 平台创建 Windows 驱动程序方面一直面临许多挑战 与具有 PCI 插槽和 USB 端口的电脑不同 类似 平板电脑和贝壳机的 SoC 系统使用低功率内部总线 缺少标准连接器 即插即用支持和发现 机制 通常 这些设备受安全启动的保护 而且无法用于开发或测试第三方驱动程序 这将很 快得到改变 硬件工程师将能够购买现成的开发板 专门用于特定的 SoC 环境 Intel Sharks Cove 板 将在 2014 年下半年上市的一种板是 Intel Sharks Cove 硬件开发板 Intel Sharks Cove 板将支持设备的驱动程序开发 这些设备使用各种接口 包括 GPIO I2C I2S UART SDIO USB 即将提供 关于 Intel Sharks C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025地产项目合作开发与绿色建筑技术应用合同
- 2025年度汽车租赁合同细则-含新能源汽车充电支持
- 2025版实习保密协议书及数据保密条款
- 2025年度新能源电池产品全国代理商合作协议
- 2025年酒店餐厅桌椅升级改造采购合同示范
- 2025年智慧城市照明系统电工施工劳务分包合同
- 海南省乐东黎族自治县2025年上半年事业单位公开遴选试题含答案分析
- 2025版石材地质勘探与矿山开采合作协议
- 2025年度多金融机构联合贷款合同
- 2025年高端别墅及私人住宅保洁服务承包合同
- 2023年福建中考语文试卷真题及答案解析
- 未成年人保护法普法宣传教育课件
- 智慧车辆管理系统解决方案
- 《泌尿系统护理》课件
- 《化工仪表知识培训》课件
- DB21T 2655-2016 花生节本增效栽培技术规程
- 重庆第二师范学院《基础乐理与视唱》2022-2023学年第一学期期末试卷
- 网约车司机安全培训
- 《汽车文化(第二版)》中职全套教学课件
- 混凝土劳务加工合同模板
- 2019新教材人教版生物必修1整本教材课后习题全部答案
评论
0/150
提交评论