串行连接的外围设备的连接 ID
SerCx2 管理外围设备永久连接到的串行端口。 由于这些物理连接是固定的,因此可以在硬件平台的 ACPI 固件中描述它们。 如果为连接到 SerCx2 管理的串行端口的外围设备编写驱动程序,则驱动程序接收的硬件资源列表包括一个 连接 ID,该连接 ID 封装了平台固件中的设备连接信息。
在系统启动时,即插即用 (PnP) 管理器枚举 PnP 设备和非 PnP 设备。 对于与串行端口建立固定连接的非 PnP 外围设备,PnP 管理器查询硬件平台的 ACPI 固件,以获取描述如何访问设备的一组连接参数。 这些连接参数标识设备连接到的端口的串行控制器,并包含串行控制器与设备通信所需的其他信息,例如波特率和流控制设置。
PnP 管理器分配连接 ID 来表示此外围设备的连接参数。 PnP 管理器将此 ID 和连接参数一起存储在名为 资源中心的系统数据存储中。 (资源中心是一个内部数据存储,其中 PnP 管理器存储有关串行连接的外围设备的配置信息。) 连接 ID 封装这些参数,以便外围驱动程序可以将它们视为不透明。
作为驱动程序分配的硬件资源的一部分,外围驱动程序接收串行连接的外围设备的连接 ID。 当外围驱动程序调用系统函数以打开与外围设备的连接时,驱动程序将提供连接 ID,系统函数使用该 ID 从资源中心检索设备的连接参数。
有关使用连接 ID 打开与串行连接的外围设备的逻辑连接的 UMDF 和 KMDF 驱动程序的代码示例,请参阅以下主题:
在关闭连接之前,在串行端口上打开与外围设备的连接的客户端具有对该端口的独占访问权限。 另一个客户端尝试打开与同一端口的第二个连接失败。
打开串行端口后,客户端应立即假定该端口处于未知或未定义状态。 客户端负责配置端口,使其可供使用。
若要为操作配置串行端口,客户端会将 I/O 控制 (IOCTL) 请求发送到串行控制器。 通常,客户端向控制器发送 IOCTL_SERIAL_APPLY_DEFAULT_CONFIGURATION 请求,以将端口设置为其默认配置。 如有必要,客户端可以发送其他串行 IOCTL 来替代一个或多个默认配置设置。 例如,Windows 定义串行 IOCTL 以更改波特率、流控制参数、行控制设置以及读取和写入请求的超时值。 有关 SerCx2 支持的串行 IOCTL 的列表,请参阅 串行 I/O 请求接口。