发新帖我要提问
12
返回列表
打印

硬件ID老是不同

[复制链接]
楼主: zhuww
手机看帖
扫描二维码
随时随地手机跟帖
21
zhuww|  楼主 | 2010-7-31 11:15 | 只看该作者 回帖奖励 |倒序浏览
第二个是个hash值.他是这个设备的parent 设备的instance path大写以后计算出来的hash值
instance path是从current control set下面的enum算起(不包含enum)

使用特权

评论回复
22
zhuww|  楼主 | 2010-7-31 11:16 | 只看该作者
第三个是hash instance.你很少有看到这个值不为0的
他表示为同一个parent计算上面这个hash的次数 - 1.通常都只是计算一次.计算以后就会保存下面.下一次就直接读取了而不会再重新计算

使用特权

评论回复
23
zhuww|  楼主 | 2010-7-31 11:16 | 只看该作者
最后一个就是由bus驱动为他们的pdo返回的instance id了

使用特权

评论回复
24
zhanglli| | 2010-7-31 11:20 | 只看该作者
我觉得很奇怪,一般来说后面要么见不到所谓你说ccccc的那一串,要么就不影响驱动安装。

使用特权

评论回复
25
zhanglli| | 2010-7-31 11:20 | 只看该作者
下面是从CyUSB.inf中截取的一段:

[Cypress]
%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4&PID_8613
%VID_04B4&PID_6830.DeviceDesc%=CyUsb, USB\VID_04B4&PID_6830
%VID_04B4&PID_1003.DeviceDesc%=CyUsb, USB\VID_04B4&PID_1003
%VID_0547&PID_1002.DeviceDesc%=CyUsb, USB\VID_0547&PID_1002
%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX

它们是在USB设备进行配置的时候由描述符来生成的,sample firmware中是如下写的(取自dscr.a51):
DeviceDscr:   
  db DSCR_DEVICE_LEN ;; Descriptor length
  db DSCR_DEVICE ;; Decriptor type
  dw 0002H ;; Specification Version (BCD)
  db 00H ;; Device class
  db 00H ;; Device sub-class
  db 00H ;; Device sub-sub-class
  db 64 ;; Maximum packet size
  dw 0B404H ;; Vendor ID
  dw 0310H ;; Product ID (Sample Device)
  dw 0000H ;; Product version ID
  db 1 ;; Manufacturer string index
  db 2 ;; Product string index
  db 0 ;; Serial number string index
  db 1 ;; Number of configurations

使用特权

评论回复
26
zhanglli| | 2010-7-31 11:21 | 只看该作者
很显然PID是1003,VID是04B4,最有可能是你所说不一样的地方的就是BCD了,此处是0200,我建议你改一下firmware再试试看。

使用特权

评论回复
27
zhuww|  楼主 | 2010-7-31 11:24 | 只看该作者
改过了,还是不对。

使用特权

评论回复
28
zhanglli| | 2010-7-31 11:25 | 只看该作者
在注册表里的Enum字段,ccccc是必须要匹配的,不能说没有用。

使用特权

评论回复
29
zhuww|  楼主 | 2010-7-31 11:25 | 只看该作者
为什么

使用特权

评论回复
30
zhanglli| | 2010-7-31 11:26 | 只看该作者
因为ccccc这个字段的主体是PC产生的的路径hash值

使用特权

评论回复
31
zhanglli| | 2010-7-31 11:26 | 只看该作者
照道理来说同一台机器的同一个USB口应该不会出现每次插入都变化的现象。

使用特权

评论回复
32
zhuww|  楼主 | 2010-7-31 11:27 | 只看该作者
是啊,我也是这么想的,刚才cccccc好像稳定了。Instance ID倒是不跳了,可是Vid,PID又经常被识别为0000

使用特权

评论回复
33
zhanglli| | 2010-7-31 11:27 | 只看该作者
Vid,PID又经常被识别为0000,这肯定是你硬件问题了

使用特权

评论回复
34
wangzsa| | 2010-7-31 11:28 | 只看该作者
楼上说的有道理,前提是如果你确定你的firmware没问题的话。

使用特权

评论回复
35
xwj| | 2010-7-31 11:29 | 只看该作者
先换根USB线再说

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则