primey
驱动牛犊
驱动牛犊
  • 注册日期2002-02-27
  • 最后登录2005-02-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3680回复:10

关于VID和PID的疑问

楼主#
更多 发布于:2003-06-23 19:31
在我得usb disk固件中,如果VID and PID 符合 windows 2000 usbstr.inf 文件中的某一个bulk设备的值,那么就可以自动安装驱动程序,但是如果我把 VID and PID 设成其他的值,则只能发现usb storage class, 不能再继续下去。为什么呢?windows 2000 是不需要驱动的呀?
zzhmmx
驱动牛犊
驱动牛犊
  • 注册日期2003-05-05
  • 最后登录2004-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-23 20:10
硬件中VID and PID 必须符合inf中的,操件系统通过 VID and PID 识别不同的设备,如果inf中的VID and PID 的符合,再通进inf 完成驱动的安装。
如果WINDOWS2000中没有该硬件的驱动,当然要安装。WINDOWS2000可不是万能的,什么都有。  :)
primey
驱动牛犊
驱动牛犊
  • 注册日期2002-02-27
  • 最后登录2005-02-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-23 20:22
可是,我也有三星的usb disk,我记得再win2000下,并不需要安装驱动程序。我使用这个usb disk 的vid信息,制作自己的usb disk,就没有做到。我还是有些怀疑,是不是我得程序还是有问题呢?
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-23 21:14
不同的产品不能使用相同的VID/PID,否则会发生冲突!
jiyu75
禁止发言
禁止发言
  • 注册日期2002-12-17
  • 最后登录2018-07-10
  • 粉丝0
  • 关注1
  • 积分-388分
  • 威望1181点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2003-06-24 13:02
用户被禁言,该主题自动屏蔽!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-25 02:09
建议你用bushound查看一下usb总线的数据,就能找到毛病了!
primey
驱动牛犊
驱动牛犊
  • 注册日期2002-02-27
  • 最后登录2005-02-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-25 18:30
在使用bushound是,记录数据如下:
 2  CTL    23 01 14 00 - 01 00 00 00  CLASS            
 2  CTL    a3 00 00 00 - 01 00 04 00  CLASS          
 2  DI     03 01 00 00                ....            
 2  DI     12 01 00 01 - 00 00 00 10
           93 06 02 00 - 00 01 01 02
 2  CTL    23 03 04 00 - 01 00 00 00  CLASS          
 2  DI     02                         .              
 2  CTL    a3 00 00 00 - 01 00 04 00  CLASS          
 2  DI     03 01 10 00                ....            
 2  CTL    23 01 14 00 - 01 00 00 00  CLASS            
 2  DI     12 01 00 01 - 00 00 00 10  ..
           93 06 02 00 - 00 01 01 02  .......
           03 01
 2  DI     09 02 20 00 - 01 01 00 80
           64
 2  CTL    a3 00 00 00 - 02 00 04 00  CLASS          
 2  DI     00 01 00 00                ....            


正常情况下,接下来应该还是get descriptor,可是的d12再也没有受到interrupt。所以连接北停止。
如果我更改vid and pid 就科技继续下去,这是为什么呢?
linjunchao
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2005-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-26 09:16

Windows2000自带对MASS STORAGE DEVICE的驱动,当USB disk接到PC上时,WIN2000判断到MASS STORAGE DEVICE,按系统自带的驱动进行查询DESCRIPTOR,然后按器件分类进行操作,并且把相关信息写入到注册表,下次侦测到同一VID的设备,就不查INF文件,直接通过注册表找驱动,你把你买的U盘接上后,系统在注册表中把该VID与系统驱动联系起来,当你把自己用同一VID的板子接上后,WIN2000不会查询INF文件,而是直接用注册表中查到的驱动去查询U盘,因此你自己的驱动没有起作用,我估计你是FIRMWARE写得有问题,仔细查一下前面的收发,完全没问题就因该可以继续了
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-26 11:13
你收到的这些根本不是发给你的设备的啊!你的设备有问题啊!
primey
驱动牛犊
驱动牛犊
  • 注册日期2002-02-27
  • 最后登录2005-02-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-26 23:07
事实正如Jim_lin 说的。如果我把板子的VID和PID写的与我得PC上注册过的VID和PID优盘一样,那么我的板子就可以正常连接上去。但是换成没有注册的,就会连接失败。但是可以手动为其添加驱动程序。

我认为,我写的这些数据都是hub的数据。在我得板子上,我可以看到这些数据就是setup packet。如果正常连接,接下来就是很明显的setup packet

我认为我得firmware有问题但是只是一直没有查处来。感觉像是一个class没有处理,可是class是什么呢?
linjunchao
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2005-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-27 10:35
我想你先查一下你FIRMWARE中的DESCRIPTOR,U盘可以用多种协议实现,如RBC,UFI,SCSI TRANSPARENT等,具体的见USB MASS STORAGE协议,你看你自己DESCRIPTOR中的CLASS,SUBCLASS等与你买的U盘的是否一致;还有Bulk-Only Mass Storage Reset和Get Max LUN两个CMD在CONTROL EP中实现,不妨先试试看,希望对你有点帮助
游客

返回顶部