hepw
驱动牛犊
驱动牛犊
  • 注册日期2001-11-13
  • 最后登录2002-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5526回复:10

多个同样的usb设备用同一个driver如何安装?

楼主#
更多 发布于:2002-01-23 18:32
打开设备的时候怎么区别?好像只有第一个设备可以用。

最新喜欢:

majin1979majin1...
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-18 19:28
关于ezusb.sys问题,你要把ezusb.sys的驱动稍微修改一下,创建的设备名字还有guid要独一无二,然后改inf文件的VID&PID,改驱动文件的名字也要不一样。也就是说不能是同样的驱动来支持不同的设备。
xueyou1
驱动牛犊
驱动牛犊
  • 注册日期2002-02-06
  • 最后登录2005-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-18 15:55
请问多种用 AN2131QC 的产品,底层驱动都是EZUSB。SYS,发生冲突怎么办?
斑竹你好,由于我的两种产品都用了EZUSB。SYS 直接做驱动程序,结果,只用其中的任何一种设备可以,但不能同时用,我分别用不同的VID PID,及把EZUSB。SYS 改名都试过,不知怎摸处理好?
是用DDK生成新的SYS,还是在应用软件中,先查出VID PID ,然后区别处理? 多谢!!

ngoahead
驱动牛犊
驱动牛犊
  • 注册日期2005-05-11
  • 最后登录2005-06-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-18 15:26
友情帮顶,我也想知道!
hulihutu
驱动牛犊
驱动牛犊
  • 注册日期2004-05-12
  • 最后登录2006-10-26
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-13 16:26
大哥,我还是不能成功。
GUID不赋值,得到的总是0xCCCCCCC-CC....
如果用HidD_GetHidGuid()永远得到一个固定的值,肯定不是我的USB.
给GUID赋值为我的USB设备的GUID,
这个时候调用第二个函数SetupDiEnumInterfaceDevice()
总是返回FALSE。
我都要疯了,请指定迷津。
谢谢。
BigHeadMonk
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2003-08-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-01-27 19:02
事实上,Chris Cant 所著的<Writing Windows WDM Device Driver>
一书中第83页的 GetDeviceViaInterface 函数可供参考。但我自己
经参阅 DDK 文档中的资料,加多了一个步骤,现将我的做法列出如
下(上一封回复真的记错了函数):
    1) SetupDiGetClassDevs
    2) SetupDiEnumDeviceInfo, 这一步的目的是要得到同类设备的
不同物理设备实例的 SP_DEVINFO_DATA
    3) SetupDiEnumDeviceInterfaces, 这里用第2步得到的
SP_DEVINFO_DATA 变量的地址来作第二个参数,而不是象书中以
NULL 作参数;
    4) 调两次 SetupDiGetDeviceInterfaceDetail
    5) CreateFile 得到设备 HANDLE
    6) SetupDiDestroyDeviceInfoList
    这就是全部步骤了。希望对你有帮助!

************************************************************
似僧有发
似俗脱尘
做梦中梦
悟身外身

大头和尚  谨上
    
BigHeadMonk
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2003-08-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-01-27 05:36
如果我没记错的话,SetupAPI DLL 中用 SetupDiEnumDeviceInfo 加设备编号,再调 SetupDiEnumDeviceInterfaceDetail 两次可以
得到 devicePath, 这对同一个设备的不同实例(例如你一下子插了
n个一模一样的设备)是不同的,这时可以用 CreateFile 来打开
不同的设备实例(用前面得到的 devicePath 作参数)。
hepw
驱动牛犊
驱动牛犊
  • 注册日期2001-11-13
  • 最后登录2002-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-01-24 19:01
什么Device number啊?怎么读啊?
zhuzc
驱动中牛
驱动中牛
  • 注册日期2001-09-01
  • 最后登录2005-04-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-01-24 14:47
可以通过读出device number来区别;或读出具体所在hub的port number来区别
我是树上的那只鸟,整理着自己的羽毛,看着城市的喧嚣……
hepw
驱动牛犊
驱动牛犊
  • 注册日期2001-11-13
  • 最后登录2002-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-01-24 12:15
还有一点不明:
上层App打开设备的时候,如果用同一个driver的话,deviceName和GUID是一样的,怎么区分打开的是哪个设备呢?
zhuzc
驱动中牛
驱动中牛
  • 注册日期2001-09-01
  • 最后登录2005-04-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-01-24 09:37
不同的USB设备,其vendor ID和device ID是不同的。

不同的USB设备可以用一个driver,不过需要修改.ini文件,把相应的vendor ID和device ID改成不同设备自己的。
我是树上的那只鸟,整理着自己的羽毛,看着城市的喧嚣……
游客

返回顶部