以前版本的 Windows - 串行控制器驱动程序概述

Windows 为传统串行控制器设备提供驱动程序支持。 术语 串行控制器 是指 16550 通用异步接收器-发送器 (UART) 或兼容设备。 串行控制器具有一个串行端口,通过该端口与串行连接的外围设备通信。 为了支持串行通信,Windows 包括 Serial.sys 和 Serenum.sys 驱动程序,以及串行框架扩展的版本 1 和 2 (SerCx 和 SerCx2) 。

SerCx

在 Windows 8 中,SerCx 是系统提供的组件,支持印刷线路板上的集成电路之间的串行通信。 SerCx 是 Kernel-Mode Driver Framework (KMDF) 的扩展。 此扩展简化了串行控制器自定义驱动程序的开发。 SerCx 通过处理串行控制器常见的许多处理任务来帮助基于扩展的串行控制器驱动程序。 此驱动程序通过 SerCx 设备驱动程序接口与 SerCx 通信。

SerCx2

从 Windows 8.1 开始,SerCx 被 SerCx2 取代。 SerCx2 比 SerCx 进行了许多改进,以减小串行控制器驱动程序的大小和复杂性。 特别是,SerCx2 减轻了处理工作所需的串行控制器驱动程序,以管理超时,并协调争用串行控制器访问权限的 I/O 事务。 因此,串行控制器驱动程序更小、更简单。 串行控制器的硬件供应商提供基于扩展的串行控制器驱动程序,它用于管理串行控制器中的特定于硬件的功能,并依赖于 SerCx2 来执行通用串行控制器任务。 此驱动程序通过 SerCx2 设备驱动程序接口与 SerCx2 通信。

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

有关驱动程序框架的一般信息,请参阅 使用 WDF 开发驱动程序

Serial.sys和Serenum.sys

在较旧版本的 Windows(如 Windows 2000)中,系统提供的串行驱动程序Serial.sys支持独立串行端口、 COM 端口和多端口板。 系统提供的串行枚举驱动程序(Serenum.sys)枚举连接到由Serial.sys或兼容的串行端口驱动程序控制的串行端口的设备。 Serial.sys通常控制 COM 端口 (通常名为 COM1、COM2 等,) 物理上位于运行 Windows 的电脑上。 这些端口松散地符合 RS-232 标准,但另外还纳入了事实上的标准 (例如,电压级别、引脚连接和硬件流控制) 已演变为支持电脑。 有关详细信息,请参阅 使用 Serial.sys 和 Serenum.sys

GitHub 上的 Windows 驱动程序示例存储库包含 SerialSerenum 驱动程序示例的源代码,这些示例的工作方式与内置驱动程序Serial.sys和Serenum.sys驱动程序类似,并且可以代替其安装。