驱动程序入门.docxVIP

  • 6
  • 0
  • 约9.51千字
  • 约 21页
  • 2022-07-03 发布于江苏
  • 举报
什么是驱动程序? 为术语“驱动程序〞给出单一的准确定义比拟困难。就最根本的意义而言, 驱动程序是一个软件 组件, 可让操作系统和设备彼此通信。例如,假设应用程序需要从设备中读取某些数据。应用程 序会调用由 操作系统实现的函数,操作系统会调用由驱动程序实现的函数。驱动程序〔由设计和 制造该设备的同 一公司编写〕了解如何与设备硬件通信以获取数摇。当驱动程序从设备获取数据 后,它会将数据返回 到操作系统,操作系统将数据返回至应用程序。 扩大定义 到目前为止,我们的说明采用以下几种方式进行简单化: ? 并非所有驱动程序都必须由设计该设备的公司编写。在多种情形下,设备根据巳发布的 硬件标 准来设计。这表示驱动程序可以由 Microsoft 编写,设备设计者无须提供驱动 程序。 ? 并非所有驱动程序都直接与设备通信。对于给定的 I/O 请求〔如从设备读取数据〉, 通常有一 些驱动程序〔在堆栈中进行分层〕参与该请求。可视化堆栈的传统方式是将第 一个参与对象 放在顶部,将最后一个参与对象放在底部,如此图所示。堆栈中的某些驱 动程序可能通过将 请求从一种格式转换至另一种格式来参与。这些驱动程序不会与设备 直接通信;它们只操纵 请求并将请求传递至堆栈下方的驱动程序。 堆栈中直接与设备通信的一个驱动程序称为“函数驱动程序〞;执行辅助处理的驱动程 序称 为“筛选器驱动程序〞。 ?某些筛选器驱动程序遵守并记录有关 I/O 请求的信息,但不会主动参与这些请求。例 如,某些筛选器驱动程序充当 验证程序以确保堆栈中的其他驱动程序正确处理 I/O 请 求。 我们可以扩大“驱动程序〞的定义,方法是表示驱动程序为遵守或参与操作系统与设备之间通信 的任一软件组件。 软件驱动程序 我们的扩大定义相当准确,但仍不完整,原因是某些驱动程序与任何硬件设备根本不关联。例如,假设你需要编写可以访 问核心操作系统数摇结构的工具,这些结构仅可以由核模式下运行的 代码进行访问。可以通过将工具拆分成两个组件来执 行该操作。第一个组件在用户模式下运行且 提供用户界面。第二个组件在核模式下运行且可以访问核心操作系统数据。在 用户模式下运行的 组件称为应用程序, 在核模式下运行的组件称为“软件驱动程序〞。软件驱动程序与硬件设备不 关联。 有关处理器模式的详细信息,请参阅用户模式和核模式。 此图说明了与核模式软件驱动程序通信的用户模式应用程序。 其他说明 软件驱动程序始终在核模式下运行。编写软件驱动程序的主要原因是荻取对仅在核模式下可用的 受保护数据的访问权限。 但是设备驱动程序不会始终需要访问核模式数据和资源。因此某些设备 驱动程序在用户模式下运行。 有一系列的驱动程序我们尚未提及,“总线驱动程序〞。假设要了解总线驱动程序,你需要了解设备节点和设备树。有关 设备树、设备节点以及总线驱动程序的信息,请参阅设备节点和设备堆栈。 到目前为止,我们的说明过度简化了 “函数驱动程序〞的定义。我们表示设备的函数驱动程序为 堆栈中直接与设备通信 的一个驱动程序。对于直接连接到外围组件互连〔PCI〕总线的设备而言, 以上为真°PCI 设备的函数驱动程序获取映射到 设备上端口和存资源的地址。函数驱动程序通过 写入这些地址直接与设备通信。但是在多种情形下,设备未直接连接到 PCI 总线。相反设备连 接到的主机总线适配器连接到 PCI 总线。例如 ,USB toaster 连接到主机总线适配器〔称为 USB 主 控制器〕,该适配器连接到 PCI 总线。 USB toaster 具有函数驱动程序, USB 主控制器也具 有函数驱动程序。 toaster 的函 数驱动程序与 toaster 间接通信,方法是将请求发送至 USB 主 控制器的函数驱动程序。然后, USB 主控制器的函数驱动程 序与 USB 主控制器硬件直接通信, 该硬件与 toaster 通信。 Filter driver for USB toaster fQjSB host controlled)-f(]lSB to 日 ste° 是否需要编写驱动程序? 0 〔共 1〕对本文的评价是有帮助-评价此主題 MicrosoftWindows 包含适用于许多设备类型的置驱动程序。如果有适用于你的设备 序。 适用于 USB 类型的置驱 动程序,那么不必自行编写驱动程序。你的设备可以使用置的驱动程 设备的置驱动程序 如果你的设备厲于由 USB 设备工作组〔DWG〕定义的设备类,那么可能已经存在适用于该设备的 Windows USB 类驱动程 序。有关详细信息,请参阅支持的 USB 设备美的驱动程序。 适用于其他设备的置驱动程序 目前, Microsoft 为以下其他类型的设备提供置驱动程序: 设备技术和 驱动程序 ACPI: ACPI

文档评论(0)

1亿VIP精品文档

相关文档