在 UMDF 中使用 I/O 目标

警告

UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。

存档的 UMDF 1 示例可在 Windows 11 版本 22H2 - 2022 年 5 月驱动程序示例更新中找到。

有关详细信息,请参阅使用 UMDF 入门

当驱动程序收到 I/O 请求时,驱动程序可能能够自行处理请求,或者可能需要其他驱动程序的协助。 如果驱动程序需要帮助,它可以将请求转发给另一个驱动程序,也可以创建一个或多个新请求并将其发送到另一个驱动程序。

基于 UMDF 的驱动程序使用 I/O 目标 将 I/O 请求发送到另一个驱动程序。 每个 I/O 目标由一个 I/O 目标对象表示。 每个 I/O 目标对象主要是一个队列。 当驱动程序向 I/O 目标发送请求时,框架会将请求存储在队列中,直到它可以将请求传递到 I/O 目标。

框架支持常规 I/O 目标和专用 I/O 目标:

  • 常规 I/O 目标 可由所有 UMDF 驱动程序使用,但它们不支持任何特定于设备的特殊数据格式。

  • 专用 I/O 目标使 UMDF 驱动程序能够发送需要特定于目标的特殊数据格式的 I/O 请求。 目前,该框架支持 USB I/O 目标

如果框架提供支持设备数据格式的专用 I/O 目标,则驱动程序应使用专用 I/O 目标。 否则,驱动程序应使用常规 I/O 目标。