danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:2163回复:14

Toaster Bus

楼主#
更多 发布于:2003-02-28 12:01
我现在正在做HID鼠标的驱动程序,用Toaster Bus和hidsporb可以用键盘模拟鼠标的移动和点击,现在也可以模拟键盘的一些操作,效果还可以

不过现在有一些问题,我搞不太清楚,我到微软的newsgroup上发了帖,Eliyas Yakub说他忙,没有时间帮我解答问题,给了我这个网址,support.microsoft.com打开以后是中文的,我也找不到有关于驱动开发的论坛,还是到这里来,索性就在这里法帖了,:)希望有高手可以看到,帮我解答问题

1 如果用过Toaster Bus的人都知道每次加载FDO时都要输入enmu -p 1
然后加载我的hidsporb joystick/mouse/keyboard驱动程序,而每次重起的时候必须要输入enum -u 1,否则不可以重起,系统会停滞。

这是怎么回事,我猜想大概是pnp或者是power的问题,但我不敢确认

2 另外还有一个问题就是:当我第一次安装hidsporb驱动时,会有“!”惊叹号在设备管理器里,而且很奇怪,惊叹号会按照顺序一个一个的接着来,(每次重起以后键入enum -p 1)

第一个是Spacetec SpaceOrb 360
第二个是HID-compliant game controller
第三个是HID-compliant mouse
最后一个是HID_compliant keyboard
以后每一次装载后都没有问题,可以方便的调试

按道理安装HID的驱动设备是不需要重新启动的,一次性就可以安装好,另外,一个驱动程序,应该是安装好以后,以后就可以不用重复安装,但是我每次要用到这个驱动的时候,都要安装一次,也就是enum -p 1

是什么出了问题呢?不解,郁闷中......

最后就是要用这个hidsporb驱动,就一定要建立在Toaster Bus上,单独安装hidsporb安装不成功,总是有惊叹号,我也不知道是哪里出了问题,有没有专家帮我。

希望可以听到回音,谢谢!

最新喜欢:

LeopardLeopar...
今天我发现我家的金鱼淹死了,:(
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-28 12:03
哦,对了,忘了说了,错误码是10,我也不清楚是什么意思
今天我发现我家的金鱼淹死了,:(
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-04 09:31
没有人来,我顶一下 :D
今天我发现我家的金鱼淹死了,:(
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-09 02:35
在USB版大概做的人不多吧?反正俺是不懂啦! :D
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-10 10:42
那我这个帖子放错地方了?
:(
今天我发现我家的金鱼淹死了,:(
flyfree
驱动牛犊
驱动牛犊
  • 注册日期2002-12-26
  • 最后登录2007-09-16
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-10 16:59
鼠标的话作为PC 的标准设备应该无须写驱动吧, WINDOWS 自带的。

另外问一下,你是KEYBOARD & MOUSE  做在一起的吗?
象键盘的话,只要正确枚举后,  HOST 会自动安装驱动的。
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-14 09:44
鼠标和键盘的驱动都是windows自带的,但都是ps/2的,没有usb的hid设备,我的键盘和鼠标是做在一起的,我把两个设备的描述表都添加了进去,安装后系统会自动安装相应的设备
今天我发现我家的金鱼淹死了,:(
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-12 14:22
哈哈,我们做的事有点类似。不过,老大,你的问题应该解决了吧?
我打字很快。
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-12 16:51
没有!我放弃了,我直接添加硬件设备,并没有在Toaster bus基础上,你呢?
今天我发现我家的金鱼淹死了,:(
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-13 13:51
 :(
不过我的和你的问题不一样,只是说领域接近 :D

我写了一个 HID miniport 的 mouse driver,这个很简单,把hidgame 精简一下就好了。

然后在 pc camera driver 上做了一个 filter driver,现在要让这个 driver 有 bus driver 的功能,从而 enum 一个设备,加载我的mouse driver。(整体上是一个演示性的软光电鼠标)

这个也应该很简单的,和 serenum 类似(但我不是在 serenum 基础上改,而是在 usb\\filter 的基础上做的)。问题是:在响应 query_device_relation之后,没有收到发给 PDO 的请求。你看,我的第一步都没有迈出去 :(
 http://www.driverdevelop.com/forum/viewthread.php?tid=43886


不知道你说的“直接添加硬件设备”是什么意思,我要是实在不行了也会试试把两个driver合在一起。
我打字很快。
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-13 15:43
你说的问题我没有深入下去了,因为我觉得Toaster bus只是一个范例程序,如果一个bus程序要这么简单的话,每个人都可以做驱动了。我觉得她隐藏了很多比较重要,比较核心的东东。bus要比一般的驱动要复杂很多,除了自己的pnp,power,ioctl数据转换等内容,还要解决嫁接到bus上的驱动的pnp,power等东东。

我说的直接添加设备就是不需要bus的支持,直接可以pnp的驱动。我把键盘,鼠标和自定义设备都做到一个驱动程序里了,只要添加一个设备,就可以在设备管理器里看到三个设备,不过他们都是假的,也就是虚拟的,测试用的,很简单,测试键盘控制鼠标的动作
今天我发现我家的金鱼淹死了,:(
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-15 00:38
虽然你已经结束了这个项目,我还是希望能交流交流,互相启发,增加点经验值,呵呵

又前后看了一下,感觉你做的这个driver就是虚拟出mouse, keyboard以及joystick。(hidsporb我还没看过)
你用Toaster Bus只是为了模拟设备插入,是吧?
而Toaster Bus模拟的插拔也是由一个应用程序来启动的,所以意义也不大。
反正直接改INF就可以手动加载你的driver及设备了,是这样吧?

driver安装后要求重启,我也常碰到,但最后的结果通常是driver写得有问题。

你说“可以在设备管理器里看到三个设备”,需要在driver里创建三个设备吗?

的确,bus driver麻烦一点,但我觉得还不至于太麻烦。主要是既有FDO的dispatch,又有它所创建的PDO的dispatch。
本来觉得这些不是很难理解的,但我的情况里它自身又是filter driver,所以不好确定问题出在哪部分。
加之WDM是第一次做,以前只做过NT下的(那时还没有FDO和PDO之类的说法吧),有些概念理解得不透彻 :(

有兴趣就随便说点经验或心得吧。反正我也不会指望你:D,大部分问题最终还是靠自己解决的,不过,有时候一点提示可能就会有很大帮助 :)
我打字很快。
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-06-16 10:02
心得倒是没有多少,就是觉得从一开始的
没有概念,问题都不知道如何提――郁闷
――>
有点概念,问号多多,但是无法解决――郁闷
――>
着手开始写代码,Bug多多,蓝屏!――郁闷
――>
Debug调试,问题多多――还是郁闷
――>
最后才会开心,整个过程就是这样
不知道的,就像天书一样,
知道的呢,这么简单的问题你都不懂,看书去!
今天我发现我家的金鱼淹死了,:(
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-06-17 14:27
哈哈哈哈!
自我安慰吧:钻研也有钻研的乐趣!

看来我也和你一样了,直接把这个设备安装上去。还是修改了一点代码:query_id/HardwareIDs,感觉是非常规做法。

我就当是在这里做笔记了 :D :D


[编辑 -  6/17/03 by  jason.gao]
我打字很快。
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-06-17 15:38
对啊,这种习惯比较好,但也有坏处,我总是找不到我要找的东东
:mad: :mad: :mad:
但每次都能在我的硬盘里找到意想不到的东东
 :D :D :D
今天我发现我家的金鱼淹死了,:(
游客

返回顶部