枚举旧版 COM 端口

串行函数驱动程序当前枚举注册表中指定的旧 COM 端口 。 串行枚举的大多数 COM 端口都是没有微控制器的多端口板上的旧设备。 请注意,此枚举函数将从 Serial 中删除,并作为安装程序的一部分包含在将来的版本中。

串行执行以下步骤:

  1. 检查驱动程序服务注册表项 下的子项标识的 COM 端口 。\Services\Serial\Parameters\<Device 子项>。

    对于每个设备子项,串行获取 旧版 COM 端口的注册表设置中所述的注册表信息。

  2. 检查 COM 端口是否为旧设备。 如果 PnPDeviceID 条目值为 null,则设备为旧设备。 如果 COM 端口是旧设备,则串行仅执行剩余步骤。 (如果 PnPDeviceID 为非空,则端口是由其总线 driver 枚举的即插即用设备。)

  3. 如果 COM 端口是旧设备,则串行确定它以前是否检测到它。

    串行使用 COM 端口的 LegacyDiscovered 条目值 (REG_DWORD) 。 如果 LegacyDiscovered 为非零值,则 Serial 之前检测到端口,并跳过再次枚举它。 即插即用管理器添加并启动旧端口。

    如果 LegacyDiscovered 为零,则 Serial 之前未检测到该端口,并将 COM 端口报告给即插即用管理器。 即插即用管理器返回 PDO,并在其设备树中为 COM 端口创建一个条目。

  4. 为每个检测到的旧 COM 端口创建 FDO,并将其附加到设备堆栈。

  5. 在旧版 COM 端口的即插即用注册表项下设置 COM 端口信息。

    串行使用从旧版 COM 端口的注册表中读取的信息子集。 有关详细信息,请参阅 即插即用 串行设备的注册表设置

  6. 启动旧版 COM 端口。

有关如何查找和使用 Windows 驱动程序注册表项的常规信息,请参阅 设备和驱动程序的注册表树