jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1750回复:13

关于 Filter Driver 的一个问题,请大家出点主意

楼主#
更多 发布于:2003-06-06 11:29
简单地问:
Filter Driver 能否在与其所在的 Driver Stack 的上下层 Driver 通讯的同时,作为另一个 Driver 的下层 Driver?

复杂地说:
现在有 PC Camera 的 Driver,想另写一个 Driver,提供 Mouse 的功能(类似软驱动的光电鼠标)。所以我想将其作为 Filter Driver挂接在 PC Camera Driver 的上面,同时作为 HID Miniport Driver 与 HID Class Driver 通讯。

现在虽然 HID Miniport 的 Driver 写好了,却发现要将两方面连接起来却成了问题。特来征求高手意见  :)
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-06 11:36
补充:
下图是我设想的方案,上面说的是方案 B 的可行性问题。
当然,欢迎您提出更可行的方案
(我目前只是感觉方案 B 可能性大一点,希望得到理论或经验的支持,谢谢!)
我打字很快。
robin_wxg
驱动小牛
驱动小牛
  • 注册日期2003-02-10
  • 最后登录2009-09-21
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-07 22:02
A可行,不过较复杂。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-07 22:19
如果streaming driver没有什么特殊要求(我没有做过),a/b都可以。我们经常这么干。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-09 08:45
谢谢 robin_wxg,谢谢 rayyang2000 版主!

我起初是觉得 B 可行性高,但后来想,我的 driver 要同时向两个 class driver 注册,同时被两个 class driver 调用,不知道会不会有冲突? 不知道 rayyang2000 是否方便说明你们具体的应用情况, 以便参考,及比较其类似性?

而且考虑到写 filter driver 对现有 driver 改动多一些,且只是做 pass-through,觉得能不用它还是不用它。

对于 A,主要的一个问题是插入一个设备后只能根据设备的 hardware Id 加载一个 driver (大家知道,INF 的 AddService 中能设为 SPSVCINST_ASSOCSERVICE 的只能有一项),这点我已经试过了。后来想,如果这第一个 driver (即上面说的 pc carema driver )能“枚举”出另一个(虚拟的)新设备,也许可能。所以后来提出这个问题。在
 http://www.driverdevelop.com/forum/html_43419.html?1055118652

不知道 robin_wxg 说的 A 较复杂什么是指?
 :) :)
我打字很快。
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-09 09:56
B方案也是可行的,你的filter driver 可以加载两个(HID Class  及Ks Stream Class下面各一个),然后两个filter driver 可以通信,这也能实现同 Pc Camera Drvier通信。
你的认可是对我最大的鼓励!
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-09 10:31
老大,你这是让我写两个 filter driver !?
那岂不是相当于综合了A,B,我看还是免了吧 :D :D

而且你的意思隐含着:HID 下面的 filter driver 不能直接和 pc camera driver 通信,这样一来,A是不可行的。是这样的吗?
 :(


[编辑 -  6/9/03 by  jason.gao]
我打字很快。
robin_wxg
驱动小牛
驱动小牛
  • 注册日期2003-02-10
  • 最后登录2009-09-21
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-09 19:59
--------------------------------------------------------
对于 A,主要的一个问题是插入一个设备后只能根据设备的 hardware Id 加载一个 driver (大家知道,INF 的 AddService 中能设为 SPSVCINST_ASSOCSERVICE 的只能有一项),这点我已经试过了。后来想,如果这第一个 driver (即上面说的 pc carema driver )能“枚举”出另一个(虚拟的)新设备,也许可能。所以后来提出这个问题。在
http://www.driverdevelop.com/forum/html_43419.html?1055118652

不知道 robin_wxg 说的 A 较复杂什么是指
--------------------------------------------------------
其实你很明白,我的意思就是这个,在Camera driver里“枚举”出mouse,就是象usbview里作的那样。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-09 21:16
谢谢谢谢,我以为还有别的问题呢,而且以为那个问题不是主要的 :)

那么看来我们的意见是一致的了。今天初步试了一下,觉得这个确实是挺麻烦的

(DDK里面的usbview是个应用程序吧,和这个好象不太一样)

另:如何给分?
我打字很快。
robin_wxg
驱动小牛
驱动小牛
  • 注册日期2003-02-10
  • 最后登录2009-09-21
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-09 23:41
看见你的第一栏里的给分按钮没?给参与者奖励吧,这是论坛的好习惯!谢谢。
robin_wxg
驱动小牛
驱动小牛
  • 注册日期2003-02-10
  • 最后登录2009-09-21
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-09 23:42
USBVIEW 是应用程序,不过我们一样把它改成内核态的,百试不爽!
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-10 09:06
不好意思,我的总分数定少了,刚才超了。现在只能每人意思一下 :(

robin_wxg:

我好象有点明白,USBVIEW除了与总线驱动打交道外,还需要扮演总线驱动的角色,是不是这样?

能否说说你们是怎样做的?

不过,你回答,我也没分给了 :cool:(能够增加总分吗)
要不,到另一个帖子里去回答,那里还有分 :D(且更相关)
 http://www.driverdevelop.com/forum/html_43419.html?1055118652
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-06-10 09:13
哦,我明白了,可以另开贴让人来取分 :D:D
我打字很快。
jason.gao
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2003-11-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-06-10 11:23
突然意识到:应该在 PC Camera Driver 上做一个 Filter Driver,这个 Driver 起到 Bus Driver 的作用,它牧举出一个我的总线上的设备,从而加载 Mouse Driver。(刚刚看到 serenum 好像是这样做的)

各位大佬以为如何? :D :D

我感觉到要S了 :mad: :mad:。。。
我打字很快。
游客

返回顶部