【发布时间】:2015-10-05 21:15:29
【问题描述】:
我正在为多端口串行卡编写 Windows (7/8) 的驱动程序堆栈。该卡有两个端口,因此驱动程序堆栈包含一个总线驱动程序,该驱动程序创建两个 PDO,每个端口一个,然后使总线关系无效以启动 PNP 序列,从而导致端口驱动程序被加载。端口驱动程序在创建符号链接以允许应用程序访问时在注册表中查找端口名称字符串。我猜 MS CoInstaller 正在分配名称。端口被赋予通常的 COMn 编号,通常是 COM3 和 COM4。
除了我无法找到一种方法来控制哪个端口被赋予哪个名称之外,一切似乎都运行良好 - 端口具有不同的实例 ID(0x40 和 0x41)和不同的 UINumber(0 和 8)。在某些(可能是大多数)安装中,存在 0x40=COM3 和 0x41=COM4 的映射,但在其他安装中,这种关系是相反的。
谁能建议什么控制端口命名?我没有自己的共同安装程序,但如果需要,我可以轻松添加特定于设备的安装程序。
谢谢
【问题讨论】:
-
我只是在猜测,但如果您只让第一个 PNP 扫描找到一个端口,等到该端口驱动程序完成加载,然后再次使总线关系无效以找到第二个端口,也许它会起作用一? (但即使可行,我也非常希望其他人有更优雅的解决方案!)
标签: windows serial-port drivers