Windows如何唯一地识别USB设备?

时间:2013-05-15 06:43:19

标签: windows winapi usb driver hid

Windows如何唯一地识别USB设备,即使USB设备提供的设备数据对所有设备都是通用的? 换句话说,Windows可以区分相同型号的两个戴尔键盘实例,而键盘不提供任何唯一的序列号。初始化USB设备时,窗口搜索的独占数据字段是什么?

2 个答案:

答案 0 :(得分:4)

Windows使用Device Instance ID进行身份验证。正如您在文档中看到的,它包含设备部件和实例部件。

设备部件取自USB设备。

由总线驱动程序决定如何生成实例部分。总线驱动程序不能单独依赖usb设备返回的信息。因为两个相同的设备会破坏系统 - 设备实例ID必须是唯一的!所以通常它附加额外的信息 - 端口号等(确切的算法是未知的,取决于驱动程序制造商)。此外,PNP管理器可以为实例ID添加更多唯一性。

答案 1 :(得分:1)

当我们将设备连接到主机设备时,将发生枚举过程。在此过程结束时,主机将为新连接的设备提供唯一的地址。因此,连接到系统的每个设备都将具有由系统提供的唯一ID,使用此ID可以识别设备并进行通信