Songzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1768回复:13

写过滤驱动遇到的问题,请指点。

楼主#
更多 发布于:2003-02-20 15:03
写了两个Driver,第一个名为MyTest,创建一个设备对象\\\\Device\\MyTest,第二个为MyFilter,创建一个设备对象并通过IoAttachDeviceToDeviceStack附加到\\\\Device\\MyTest上。在加载了第一个Driver后,向\\\\Device\\MyTest发送控制请求很正常,可是在加载MyFilter后,再向\\\\Device\\MyTest发送控制请求时出现“拒绝访问”错误,是在CreateFile(\"\\\\Device\\MyTest\"...)时出现的,请问应该是哪里出问题了~?
bx_bird
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-20 15:25
请问一下,你这两个driver的依赖关系是怎么指定的?就是说MyFilter的DriverEntry传入的PDO指针为什么会指向MyTest?inf文件里吗?
bx_bird
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-20 15:26
请问一下,你这两个driver的依赖关系是怎么指定的?就是说MyFilter的DriverEntry传入的PDO指针为什么会指向MyTest?
Songzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-20 15:31
这两个Driver都是通过应用程序动态加载和卸载的,我是想通过MyFilter这个Driver来过滤发往MyTest里创建的\\\\Device\\MyTest的控制请求。
callmefire
驱动牛犊
驱动牛犊
  • 注册日期2002-12-05
  • 最后登录2003-02-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-20 16:03
yuri69
驱动小牛
驱动小牛
  • 注册日期2002-07-12
  • 最后登录2005-12-31
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-20 18:48
能问一下,如何 安装 filter 驱动呢?

能不能把你的 inf 贴上来,让大家看看呢?先谢过了。

我倒是能够通过 inf 把驱动程序 拷到系统的目录。但是我的 filter 程序有一个!,通过debugview 也没有看到驱动程序输出的信息。

这是什么原因呢?
我不会停止对你的思念,就像呼吸一样,我不去特意的想,但是,只能屏息,而不可能停止
Songzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-02-21 09:14
我不会写inf文件,向来是通过程序加载。
Songzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-02-21 15:10
没有人能指点一下么?为什么我把一个设备对象附加到原来的设备对象上以后,再在用户程序中用CreateFile打开原来的设备对象时会出现“拒绝访问”错误呢~?
Songzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-02-21 15:30
通过工具我发现在MyTest这个Driver里创建的设备对象\\\\Device\\MyTest最初的属性为允许读、写,而在其上面挂接了别的设备对象后其属性为空,这就是出现“拒绝访问”的原因,但为什么会发生这种情况呢~~?
yuri69
驱动小牛
驱动小牛
  • 注册日期2002-07-12
  • 最后登录2005-12-31
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-02-21 18:14
你用什么程序把 驱动安装到系统上?
怎么会没有inf 文件呢?
我不会停止对你的思念,就像呼吸一样,我不去特意的想,但是,只能屏息,而不可能停止
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-02-22 12:06
你是否在Filter中处理IRP_MJ_CREATE时使用了IoCompleteRequest
或完成例程,如果这样我想你没有办法法打开MyTest了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-02-23 22:14
你换成CreateFile(\"\\\\\\\\Device\\\\MyTest\"...)这种形式试试看
放弃瘟草,现吃李草
yuri69
驱动小牛
驱动小牛
  • 注册日期2002-07-12
  • 最后登录2005-12-31
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-02-26 23:23
”\\\\\\\\Device\\\\MyTest\"

这不是合法的操作,转换成正常的,岂不是 \\\\Device\\MyTest

系统会认为是网络地址
我不会停止对你的思念,就像呼吸一样,我不去特意的想,但是,只能屏息,而不可能停止
Songzh
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2011-03-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-02-28 16:51
问题解决了,原来我在用IoCreateDevice创建“\\\\Device\\MyTest”这个设备对象的时候,第六个参数设成了TRUE,改成FALSE就没有问题了。关于这个参数,书上解释如下:
第六个参数指出设备是否是排斥的。通常,对于排斥设备,I/O管理器仅允许打开该设备的一个句柄。
游客

返回顶部