分层驱动和过滤驱动有什么区别?

39 views
Skip to first unread message

井底之蛙

unread,
Aug 25, 2008, 8:43:30 AM8/25/08
to ph4...@googlegroups.com
如题:
我知道
过滤驱动:IoAttachDevice
分层驱动:IoAttachDeviceToDeviceStack
貌似没什么区别么?
 

飞扬天下

unread,
Aug 25, 2008, 10:41:18 PM8/25/08
to ph4...@googlegroups.com
汇编和C有什么区别?

&悟!"

unread,
Aug 25, 2008, 11:45:48 PM8/25/08
to 飞扬天下, ph4nt0m
现在的c编译器可以编译出非常精练的代码,如果调试过程中注意这些代码,会觉得是一种享受,相比之下汇编写的代码效率不一定高,而且很难维护。除了一些特殊场合,最好用高级语言。
 
 
------------------ Original ------------------
From: "飞扬天下"<rise....@gmail.com>;
Date: 2008年8月26日(星期二) 上午10:41
To: "ph4nt0m"<ph4...@googlegroups.com>;
Subject: [Ph4nt0m] Re: 分层驱动和过滤驱动有什么区别?

zzzEVAzzz

unread,
Aug 31, 2008, 10:31:23 AM8/31/08
to ph4...@googlegroups.com
直观的说,IoAttachDevice是加在指定设备对象上,IoAttachDeviceToDeviceStack是加在整个设备栈的最上面。区别就是位置不一样。

2008/8/25 井底之蛙 <bette...@163.com>:

better0332

unread,
Aug 31, 2008, 9:17:34 PM8/31/08
to ph4...@googlegroups.com
不是这样的吧,它们都加在设备栈最顶层,IoAttachDevice是一个老例程,它同样调用了IoAttachDeviceToDeviceStack,书上推荐用IoAttachDeviceToDeviceStack。它们除了参数不一样,但我感觉IoAttachDevice用的有问题,不知道怎么回事

zzzEVAzzz

unread,
Sep 6, 2008, 10:51:09 AM9/6/08
to ph4...@googlegroups.com
你是对的。我只看了MSDN的解释,没查源代码,结果误解了。
IoAttachDevice比IoAttachDeviceToDeviceStack多一个IoGetRelatedDeviceObject调用。其他就没差别了。
不知道你的问题本身"过滤驱动:IoAttachDevice 分层驱动:IoAttachDeviceToDeviceStack。"是从何说起的。
可能对于文件系统来说,通常说"过滤驱动",用的是IoAttachDevice,因为可以根据文件或卷的名字安装过滤驱动。而对一般而论的驱动框架,自然是IoAttachDeviceToDeviceStack咯。

2008/9/1 better0332 <bette...@163.com>:

better0332

unread,
Sep 7, 2008, 9:32:23 PM9/7/08
to ph4...@googlegroups.com
因为我自己写了两个驱动,分别用这两个函数挂载上去,IoAttachDeviceToDeviceStack成功,IoAttachDevice蓝屏。跟了一下IoAttachDevice在ObDereferenceObject时会发送CLOSE消息,随后就……
Reply all
Reply to author
Forward
0 new messages