windows如何唯一地标识USB设备?

windows如何唯一地标识USB设备?,windows,winapi,usb,driver,hid,Windows,Winapi,Usb,Driver,Hid,windows如何唯一地识别USB设备,即使USB设备提供的设备数据对该品牌的所有设备都是通用的? 为了说明这一点,Windows可以区分同一型号的两个Dell键盘实例,而无需键盘提供任何唯一的序列号。初始化USB设备时,windows搜索的专用数据字段是什么 当我们将设备连接到主机设备时,将发生枚举过程,在该过程结束时,主机将为新连接的设备提供唯一地址。因此,连接到系统的每个设备都将有一个由系统提供的唯一Id,使用该Id可以识别设备并进行通信当我们将设备连接到主机时,将发生枚举过程,在该过程结

windows如何唯一地识别USB设备,即使USB设备提供的设备数据对该品牌的所有设备都是通用的?
为了说明这一点,Windows可以区分同一型号的两个Dell键盘实例,而无需键盘提供任何唯一的序列号。初始化USB设备时,windows搜索的专用数据字段是什么

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

当我们将设备连接到主机时,将发生枚举过程,在该过程结束时,主机将向新连接的设备提供唯一地址。因此,连接到系统的每个设备都有一个由系统提供的唯一Id,使用此Id可以识别设备,并且Windows用于识别的通信发生。正如您在文档中看到的,它包含一个设备部分和一个实例部分

设备部分取自USB设备

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

Windows用于标识。正如您在文档中看到的,它包含一个设备部分和一个实例部分

设备部分取自USB设备


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

这个问题是否特定于不提供唯一ID的设备?由于USB支持不同设备的唯一标识符,因此不需要它们。例如键盘或HID设备通常不提供序列号。如果设备连接到不同的端口,主机可以区分它们,即使它们在其他方面是相同的。这个问题是否特定于不提供唯一ID的设备?由于USB确实支持不同设备的唯一标识符,它们不是必需的。一个实例将是键盘,或者HID设备一般不提供序列号。如果设备连接到不同的端口,则主机可以区分它们,即使它们是相同的。请考虑这种情况。USB设备是第一次插入的,只要它在操作系统上通电时知道特定的设备。但是在重新启动时,设备应发送一些数据/唯一标识符/唯一编号字段,操作系统使用这些字段可以识别此设备先前也已插入。@Bleamer如果设备已拔出,则无论之前的状态如何,它将在下一次插入时重新计算。如果设备被重置/重新启动/无论您如何称呼它,而没有被拔出,枚举不会丢失,并且设备重新启动的过程与它无关-考虑到这种情况,每个设备的专有顺序都不同。USB设备是第一次插入的,只要它在操作系统上通电时知道特定的设备。但是在重新启动时,设备应发送一些数据/唯一标识符/唯一编号字段,操作系统使用这些字段可以识别此设备先前也已插入。@Bleamer如果设备已拔出,则无论之前的状态如何,它将在下一次插入时重新计算。如果设备被重置/重新启动/无论您如何称呼它,而没有被拔出,枚举不会丢失,并且设备重新启动的过程与它无关-这是每个设备的专有顺序不同