阅读:2040回复:4
ndismregisterdevice和iocreatedevice可以同时在driverentry中调用吗?
ndismregisterdevice和iocreatedevice可以同时在driverentry中调用吗?
|
|
沙发#
发布于:2005-07-10 19:01
我想修改passthru中的driverentry,在其中用ndismregisterdevice创建一个object,用来复制合乎条件的数据包,然后使用iocreatedevice创建一设备对上层程序提供读写接口,不知道这样是否可行?请高手们指点一下,谢谢!
|
|
板凳#
发布于:2005-07-10 21:13
没有问题.但是没有必要,只用一个不能满足你的需要吗?
|
|
地板#
发布于:2005-07-11 14:26
谢谢版主的提醒,ndismregisterdevice和iocreatedevice在创建设备对象时的作用应该是一样的吧。如果只创建一个设备,那我创建的设备能在完成数据报过滤的同时又能跟上层其他应用程序交互吗?
其实我想这样做,就是在中间层防火墙下再插入一个中间层驱动,使得数据在到达防火墙之前先经过我这个驱动的过滤,把我想要的数据直接交给我的专门的上层应用程序而不经过系统协议栈;把其他的数据仍交给防火墙作正常处理。当然,我想要的数据还是需要自己解析的,说白了就是我想绕过中间层的防火墙。 所以想创建两个设备,版主大侠再给指点一下吧! |
|
地下室#
发布于:2005-07-11 14:57
如果你想过滤数据包,根本不需要自己去创建DeviceObjec,是通过你的im驱动的PtReceivexx, MSendPacketxx等函数实现过滤的,(其实你注册miniport驱动时,ndis好像会给你创建一个deviceobject,你可以自己用softice跟踪确认一下,但是你不用关心)。.NdisMRegisterDevice,和IoCreateDevice,目的是一样的,都是为了上层应用程序和驱动直接通讯,只是NdisMRegisterDevice是ms在im这种架构下,推荐的方法。
你这种情况,没有必要建立两个设备,一个足够了。 |
|