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 目标(可以是 本地远程)是不支持特定于设备的特殊数据格式(如 USB 请求块)的 I/O 目标。 在驱动程序将数据发送到常规 I/O 目标之前,它们必须以 I/O 目标和设备可以解释的格式将数据放入写入缓冲区。 同样,当驱动程序从常规 I/O 目标读取数据时,驱动程序必须能够解释从目标接收的数据缓冲区的内容。

本地 I/O 目标
驱动程序通常会将 I/O 请求发送到驱动程序堆栈中下一个较低的驱动程序。 因此,每个基于 UMDF 的驱动程序都有每个设备 的默认 I/O 目标 ,即设备的下一个低级驱动程序。 基于 UMDF 的最低级别驱动程序的默认 I/O 目标是内核模式 反射器

有时,基于 UMDF 的驱动程序必须将 I/O 请求发送到基于文件句柄的 I/O 目标,例如文件或网络套接字。 因此,框架还提供基于文件句柄的 I/O 目标对象。

默认 I/O 目标和基于文件句柄的 I/O 目标都称为 本地 I/O 目标,因为基于 UMDF 的驱动程序使用这些目标将 I/O 请求发送到驱动程序堆栈支持的设备。

远程 I/O 目标
有时,驱动程序必须将 I/O 请求发送到其他驱动程序堆栈。 因此,该框架还提供 远程 I/O 目标,其中包括除本地 I/O 目标之外的所有 I/O 目标。

远程 I/O 目标可能是驱动程序堆栈不支持的设备、设备上的文件或该设备 的设备接口

以下部分介绍如何初始化和使用常规 I/O 目标: