laser36
驱动牛犊
驱动牛犊
  • 注册日期2001-09-11
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2002-04-01 20:10
Tom_lyd:

当你看到此贴时,我的分已给了,它表示感谢和对助人行为的奖赏,而且你们的贴子也启发了我。但并不表示我就同意你的帖子。

我下载了FILEMON 文件,我并未通读,但快速地查看了它的扩展变量标记,我在头文件中找到了记录:
typedef struct {
    FILE_SYSTEM_TYPE Type;
    PDEVICE_OBJECT   FileSystem;
    unsigned         LogicalDrive;
    BOOLEAN          Hooked;
    PFILE_FS_ATTRIBUTE_INFORMATION FsAttributes;
} HOOK_EXTENSION, *PHOOK_EXTENSION;        
这应该就是标记了,如果它们之一能标记 IRP 之目的地,那么它就不能是某判断之结果,可是我找到了如下一类的内容:
HookSpecialFs(
    IN PDRIVER_OBJECT DriverObject,
    FILE_SYSTEM_TYPE FsType
)

PHOOK_EXTENSION     hookExtension;

    hookExtension = hookDevice->DeviceExtension;
    hookExtension->LogicalDrive = \'\\\\\';
    hookExtension->FileSystem   = topAttachDevice;
    hookExtension->Hooked       = TRUE;
hookExtension->Type = FsType;

        hookExtension = hookDevice->DeviceExtension;
        hookExtension->LogicalDrive = \'A\'+Drive;
        hookExtension->FileSystem   = fileSysDevice;
        hookExtension->Hooked       = TRUE;
        hookExtension->Type         = STANDARD;

UnhookSpecialFs(
    FILE_SYSTEM_TYPE FsType
    )
{
    PHOOK_EXTENSION   hookExt;

等等之类,可知,虽然扩展变量标记可作为判别条件,可惜同样是某些判别结果,根据在学校教育的经验可知,它的否定证明成立了--至少在此源码包中。除非你能给出更可靠的证据。

Iamme 问题也很有意思。

另外,2002-04-01_多重过滤.doc 附件无法下载,能否发到我的邮箱? (laser369@263.net)

再次表示感谢!!!
 :D

[编辑 -  4/1/02 作者: laser36]
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2002-04-01 21:47
To:Iamme
你的看法有误,
发向B的IRP不一定经过C
你编两个驱动程序试一下吧!因为对于A、B、C
A有一个目标设备对象A,B创建了两个设备对象B1和B2其中B1是钩挂在A之上的过滤设备对象,C也创建了两个设备对象C1和C2,C1是钩挂在B1之上的过滤设备对象,而B2及C2是驱动程序为了响应WIN32应用程序的消息的设备对象,那么对于发送给B2的请求,,驱动程序C是拦截不到的
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2002-04-01 21:48
怎么俺一分都没有啊??? :( :( :( :(
Iamme
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2005-10-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2002-04-02 09:43
to guardee :

是,照你的说法是这样的
不过我并没有说B、C要创建两个设备对象啊
我看看
可能是我把主题就理解错了?
Go,go ahead
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2002-04-02 11:13
谢谢laser36给分,我的邮箱今天不能用,不知163.net今天又搞什么鬼,我再上传一份吧。
Tom_lyd
laser36
驱动牛犊
驱动牛犊
  • 注册日期2001-09-11
  • 最后登录2005-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2002-04-03 10:04
怎么俺一分都没有啊??? :( :( :( :(


guardee,你好:

并非我吝啬分,而是你的回答不够建设性,如果你能够给出“给过滤设备命名并且提供符号连接的驱动程序”的实现代码部分,我当然会给高分。你不会太保守吧。
 :) :) :) :)
liumeng
驱动牛犊
驱动牛犊
  • 注册日期2002-04-03
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2002-04-03 19:57
实在是太精彩了,可惜咱没有做过过滤驱动程序,不过小弟确实想学习一下,请各位大侠指点一下,应该看些什么资料?谢谢!!!!!!! :)



[编辑 -  4/3/02 作者: liumeng]
pengyc
驱动牛犊
驱动牛犊
  • 注册日期2001-07-16
  • 最后登录2010-04-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2002-04-04 08:44
B,C要与win32通信,所以要创建两个设备对象. 如果一个驱动程序创建了多个设备对象,  为了区分它们, 可以在创建时在设备对象扩展中设置标志.FiDO是\"影子\"对象, 不应该暴露给用户, 所以不需要设备名和符号连接.

这是我看了上面诸位的讨论后的理解,不知对否?
上一页 下一页
游客

返回顶部