串行控制器驱动程序设计指南

你可以设计使用串行 I/O 请求接口与连接到串行端口的外围设备进行通信的驱动程序或应用程序。 串行端口是串行控制器(16550 UART 或兼容设备)上的硬件通信接口。 若要控制外围设备永久连接到的串行端口,可以设计一个自定义串行控制器驱动程序,将其用于替代了串行框架扩展版本 1 (SerCx) 的版本 2 (SerCx2)。

在较旧版本的 Windows 中,使用电脑机箱上的已命名 COM 串行端口、收件箱 Serial.sys 和 Serenum.sys 驱动程序。

注意

本主题介绍如何对传统 COM 端口进行编程。 有关 USB 连接的串行端口的信息,请参阅 USB 串行驱动程序 (Usbser.sys)

SerCx2

可编写可与串行框架扩展版本 2 (SerCx2) 配合使用的串行控制器驱动程序来管理串行控制器。 还可为连接到由 SerCx2 和串行控制器驱动程序联合管理的串行控制器上的端口的外围设备编写外围驱动程序。 该外围驱动程序使用串行 I/O 请求接口将数据传输到设备以及从设备传输数据。 基于扩展的串行控制器驱动程序会处理串行控制器的所有特定于硬件的任务,但使用 SerCx2 执行所有串行控制器通用的许多系统任务。 从 Windows 8.1 开始,SerCx2 是一个系统提供的组件。

SerCx2 使串行控制器驱动程序无需再处理管理超时所需的工作,也无需协调争用串行控制器访问权限的 I/O 事务。 因此,串行控制器驱动程序更小、更简单。 串行控制器的硬件供应商提供基于扩展的串行控制器驱动程序,它用于管理串行控制器中的特定于硬件的功能,并依赖于 SerCx2 来执行通用串行控制器任务。 该驱动程序通过 SerCx2 设备驱动程序接口与 SerCx2 通信。

有关 SerCx2 的详细信息,请参阅使用串行框架扩展版本 2 (SerCx2)

在本节中