freefly
驱动牛犊
驱动牛犊
  • 注册日期2001-11-08
  • 最后登录2007-02-11
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
阅读:1093回复:7

Ring3 application怎样与过滤器驱动程序 filter wdm 通信????

楼主#
更多 发布于:2002-04-26 15:31
freefly
驱动牛犊
驱动牛犊
  • 注册日期2001-11-08
  • 最后登录2007-02-11
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-26 17:20
怎么没人感兴趣?
过滤器驱动要生成一个没有名字的Device object,那么这个过滤器驱动程序怎样与应用程序通信?可以用deviceiocontrol吗?具体怎样实现?
du_lin
驱动小牛
驱动小牛
  • 注册日期2002-01-26
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-26 17:50
我也想知道。问的太好了,
macy
禁止发言
禁止发言
  • 注册日期2001-12-19
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分6383分
  • 威望48270点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-04-27 14:20
用户被禁言,该主题自动屏蔽!
freefly
驱动牛犊
驱动牛犊
  • 注册日期2001-11-08
  • 最后登录2007-02-11
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-27 16:53
还有过滤器驱动程序怎样实现PnP?
在WdmAddDevice Routine里实现将Filter device object连接到Target device object?
wlrwx
驱动小牛
驱动小牛
  • 注册日期2002-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望11点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-27 17:53
在过滤驱动程序里面,你可能要创建多个设备;你可以为每个设备都命名,IOCREATESYMBOLINK什么的这个函数...
其中一个用来和你自己的APP通信,其它的则用来FILTER 其他的设备数量自己定的,最简单的就是1个了;

用来FILTER的设备要ATTACH到FILTER下层的设备上去;而另一个不需要ATTACH到任何设备,但你不要把这2个设备的派遣函数都弄到一个默认的Dispatch里面,除非你自己能识别有IRP来的时候是哪个设备的IO;最好是分别指定派遣函数,这样旧知道是你FILTER的设备来的IO呢还是你的APP发来的IO了,这里有一个例子,这个驱动里FILTER了很多设备,W32API相关的是用来和应用程序通信的~~~~好好看看吧

对于过滤驱动实现PNP,我个人觉得,如果你要过滤的设备是PNP的,那么你把响应的IRP乡下传不久可以了吗?不知我理解对不对??
附件名称/大小 下载次数 最后更新
2002-04-27_TDISAMP.zip (136KB)  12
真正的浪子―――― 是掠过城市的微风,每个人都能感到他的清新,可没有人能留住...... 亦是划过天际的流星,所有人都能仰望他夺目的光芒,没有人能触及...... 风止于森林,流星损于黄土......非凡浪子归于他的最爱......
freefly
驱动牛犊
驱动牛犊
  • 注册日期2001-11-08
  • 最后登录2007-02-11
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-28 09:10
在过滤驱动程序里面,你可能要创建多个设备;你可以为每个设备都命名,IOCREATESYMBOLINK什么的这个函数...
其中一个用来和你自己的APP通信,其它的则用来FILTER 其他的设备数量自己定的,最简单的就是1个了;

用来FILTER的设备要ATTACH到FILTER下层的设备上去;而另一个不需要ATTACH到任何设备,但你不要把这2个设备的派遣函数都弄到一个默认的Dispatch里面,除非你自己能识别有IRP来的时候是哪个设备的IO;最好是分别指定派遣函数,这样旧知道是你FILTER的设备来的IO呢还是你的APP发来的IO了,这里有一个例子,这个驱动里FILTER了很多设备,W32API相关的是用来和应用程序通信的~~~~好好看看吧

对于过滤驱动实现PNP,我个人觉得,如果你要过滤的设备是PNP的,那么你把响应的IRP乡下传不久可以了吗?不知我理解对不对??


哎呀,真是太高兴啦:)
不过,我还有几点疑问。通常我们在AddDevice routine中创建一个PDEVICE_OBJECT fdo,然后attach到这个函数传入的 IN PDEVICE_OBJECT pdo上,在filter driver中还要这么做吗?然后在创建Filter device object并attach到要过滤的TargetDevice 上吗?这里产生另一个问题:我怎样给这两个设备分别指定不同的Dispatch呢?如果不能指定不同的Dispatch,那么我怎样区分传入的IRP并分别加以处理呢?我可以在DriverEntry中创建Filter device object吗?
每个驱动程序是否只能用一个设备来代表它呢?
freefly
驱动牛犊
驱动牛犊
  • 注册日期2001-11-08
  • 最后登录2007-02-11
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-28 09:47
一个驱动程序只能将一个设备attach到一个设备栈上吗?
游客

返回顶部