访问 SerCx2 托管串行端口上的设备
SerCx2 和串行控制器驱动程序共同管理外围设备永久连接的串行端口。 若要访问 SerCx2 托管串行端口上的外围设备,外围设备驱动程序会打开与串行端口的逻辑连接,并获取表示此连接的文件句柄。 然后,驱动程序使用此句柄将 I/O 请求发送到端口。
在本节中
-
通常,由 SerCx2 管理的串行端口永久连接到外围设备。 此设备由将 I/O 请求发送到串行端口的外围驱动程序控制。 这些请求向/从设备传输数据,并配置串行端口的状态。 外围驱动程序发送的 I/O 请求由 SerCx2 和关联的串行控制器驱动程序共同处理。
-
如果外围驱动程序控制由 SerCx2 和串行控制器驱动程序联合管理的串行端口上的设备,则驱动程序可以打开到此端口的逻辑连接,然后通过该端口向设备发送 I/O 请求。
-
外围驱动程序将写入 (IRP_MJ_WRITE) 和读取 (IRP_MJ_READ) 请求发送到串行控制器上的端口,以在连接到端口的外围设备之间传输数据。 SerCx2 处理这些请求的方式是明确定义的,即使请求超时或被取消也是如此。
-
(或 UART) 串行控制器通常包括接收 FIFO。 此 FIFO 对从连接到串行端口的外围设备接收的数据提供硬件控制的缓冲。 若要从接收 FIFO 读取数据,此设备的外围驱动程序会将读取 (IRP_MJ_READ) 请求发送到串行端口。
-
从 Windows 10 版本 1903 及更高版本开始,系统制造商或集成商可以通过 ACPI 选择加入,让 SerCx/SerCx2 将串行端口作为设备接口公开给应用程序和服务。