Windows 如何通过USB设备描述符获取USB类型(电话、USB闪存等)?

Windows 如何通过USB设备描述符获取USB类型(电话、USB闪存等)?,windows,usb,Windows,Usb,我可以获取设备描述符: bcdUSB: 0x0200 bDeviceClass: 0xEF bDeviceSubClass: 0x02 bDeviceProtocol: 0x01 bMaxPacketSize0: 0x40 (64) idVendor: 0x045E (Microsoft Corporation) idProduct: 0x0728 bcdDevice:

我可以获取设备描述符:

bcdUSB:             0x0200
bDeviceClass:         0xEF
bDeviceSubClass:      0x02
bDeviceProtocol:      0x01
bMaxPacketSize0:      0x40 (64)
idVendor:           0x045E (Microsoft Corporation)
idProduct:          0x0728
bcdDevice:          0x0100
iManufacturer:        0x01
0x0409: "Microsoft"
iProduct:             0x02
0x0409: "Microsoft LifeCam VX-5000"
0x0409: "Microsoft LifeCam VX-5000"
iSerialNumber:        0x00
bNumConfigurations:   0x01,
如何通过USB设备描述符获取USB类型(电话、USB闪存、无线网卡等)?(请原谅我笨拙的英语,我的母语不是英语。)

这是我的iphone和usb驱动器的参数。我应该使用什么参数来区分不同的设备?电子课堂似乎不起作用


查找
bDeviceClass
设备类。存在0xEF其他设备


以及针对特定设备的
idVendor
idProduct
。其中0x045E是Microsoft,0x0728是LifeCam VX-5000-

BDeviceClass的值是00表示设备最终在接口上定义。我们需要找到相应的配置描述符,然后通过配置描述符得到相应的接口描述符。然后我们可以得到“bInterfaceClass”,它代表设备。

我从手机和usb驱动器获得的bDeviceClass是相同的(每个接口都是0),那么我如何判断呢?但是其他一些参数是不同的,例如bcdDevice、bcdUSB,我可以区分它们吗?有关usb描述符的详细信息,请参阅。