阅读:6383回复:7
有偿求助:更改USB的驱动程序的VID pid
我的driver还没入门,现在用到CY7C68013A 做了一块转接卡,想使用某国外公司某同类产品的driver,如果使用那个个公司的VID和PID,driver可以加载成功,启动也成功,但是为了避免和其他产品使用同一个PID和 VID,所以改一个其它的PID 和VID,但是发现顺利可以安装驱动程序,就是不可以启动,换回那个公司的VID pid 之后就没问题,可以正常使用。已经调了两个多月,老板脸色很难看,请各位出点主意。多谢了,如果哪位有经验,请指点一下,可付报酬。可发邮件shawnren2008@gmail.com 商议。
已经做的:更改inf中的vid 和PID, 用usblyzer抓了数据,比较了数据,只是最后没有启动的那个结尾少一点东西,见附件红色线以下部分, |
|
沙发#
发布于:2010-01-14 20:25
回 楼主(shawnren) 的帖子
ding ding ding |
|
板凳#
发布于:2010-01-15 18:34
看不懂你说的改USB驱动的PID和VID是什么意思,PID和VID是硬件的信息,是hub直接从设备上获取,发给pnp管理器的.
跟驱动没什么关系啊. 你是怎么改的不行,在硬件里改了,然后把inf里改成和你硬件匹配的就可以了. 安装驱动是先匹配pid vid,如果不匹配就找兼容id |
|
地板#
发布于:2010-01-16 15:36
1. 在硬件里的VID 和PID 已经改了
2. inf 里的VID 和PID也改成和硬件一致 为什么要改驱动SYS里的VID和pid, 因为不改的话,借用别人的驱动,显示就是别人的厂商信息。这是侵权的,所以要把SYS里的VId 和PID改了。 |
|
地下室#
发布于:2010-01-18 23:49
可能是这个驱动在加载的时候会校验硬件的VID和PID是否合法
|
|
5楼#
发布于:2010-01-22 11:06
设备启动的过程,首先是usb hub和硬件的交互,会把你的设备信息收集给系统,然后系统加载相应的驱动。然后驱动加载上以后会给你的设备发URB。
你的驱动可以安上,但是启动不了,应该是后面一个过程出了问题,设备驱动一定是又去获取你的设备信息了。如果有驱动的源码直接找到这块改掉,是最根本的解决方法。要是这个驱动你不能改,那就不太好办了。可以先抓包看是哪个urb的问题,估计应该是get device desciption时驱动比较了id发现不对然后做一个过滤驱动,发现这个包的时候把id改回去。那么给别人用的时候也需要安装过滤驱动,觉得不是一个根本的解决方案,最好还是找驱动源码。 看你的包第一个是获取设备信息,第二个是获取语言,后面几个是获取设备名称的。 |
|
6楼#
发布于:2010-01-23 20:37
多谢楼上回复,
|
|
7楼#
发布于:2010-01-24 17:18
VID和PID改变后,系统中对应的驱动程序就变了。另外,驱动应该会判断当前被驱动的设备,是不是自己支持的设备。这一般根据获取VID和PID,以及厂商名,设备名等来判断。
你要自己写驱动的。不能用别人的。 |
|
|