假设我有一只老鼠。我将此鼠标插入计算机上 4 个插槽中的第 1 个插槽。它通过检测到的新设备以及所有这些,这很好。但是,如果我稍后用相同的鼠标回来并将其插入插槽 3,它会再次进行检测!为什么是这样?
jas*_*onh 63
根据雷蒙德·陈的说法:
如果我将它插入不同的端口,为什么 Windows 无法将我的 USB 设备识别为同一设备?
您可能已经注意到,如果您将 USB 设备插入计算机,Windows 会识别它并对其进行配置。然后,如果您拔下它并将其重新插入不同的 USB 端口,Windows 会失忆并认为它是一个完全不同的设备,而不是使用上次插入时应用的设置。这是为什么?
USB 设备人员解释说,当设备缺少 USB 序列号时会发生这种情况。
USB 设备上的序列号是可选的。如果设备有一个,则无论您将其插入哪个 USB 端口,Windows 都会识别该设备。但是,如果它没有序列号,则 Windows 会将不同 USB 端口上的每个外观都视为新设备。
(我记得一个主要的 USB 设备制造商不太了解序列号是如何工作的。他们给了他们所有的设备序列号,太好了,但他们都得到了相同的序列号。如果你插入其中的两个,就会发生令人兴奋的事情设备同时插入计算机。)
但是,如果 Windows 缺少序列号并显示在不同的端口上,为什么它会将其视为不同的设备呢?为什么它不能只是说,“哦,你在那里,在另一个港口那边。”
因为一旦你插入两个这样的设备,就会产生随机行为。根据即插即用枚举设备的顺序,这两组设置在每次启动时似乎是随机分配的。今天设置以一种方式匹配,但明天当设备以另一种顺序枚举时,设置被交换。(如果你以不同的顺序插入设备,你会得到类似的莫名其妙的行为。)
换句话说:事情很糟糕,因为 (1) 事情已经很糟糕了——如果设备有正确的序列号,这不会成为问题——并且 (2) 一旦你处于这种糟糕的状态,替代方案就更糟糕了. USB 堆栈只是试图在糟糕的情况下做到最好,而不会使情况变得更糟。
| 归档时间: |
|
| 查看次数: |
30258 次 |
| 最近记录: |