阅读:1503回复:4
请大牛帮忙,驱动和应用通讯的思路
我想写这样一个防火墙,利用NDIS HOOK实现,让发现一个本机发送包的目的IP是( 假设10.10.10.10)时,提示用户并询问时候进行连接,并给用户一个回答问题的时间,例如10s。在等待用户回答的过程中,不能影响其他包的发送。
我该怎么做呢? 我的思路是这样的: 是不是要申请一个缓冲区,保存待发送的包?如果要,缓冲区应该多大? 如何处理等待过程中的通讯呢?采用多线程? 如果用事件进行通讯,事件应该在那一层创建? 哪位大牛指点一下,不胜感谢!!! |
|
沙发#
发布于:2005-07-01 16:24
应该通过tdi filter来实现,不要用ndis hook
|
|
板凳#
发布于:2005-07-02 14:39
用NDIS HOOK好象也还是可以的,你需要开一个核心线程,先将包把缓存,在超时或者用户不同意时将包直接丢掉,如果用户同意那就放行。
我觉得可以不用自己开缓冲区,直接把NDIS_PACKET保存起来就可以了,给用户提示消息肯定要用事件的,这个是核心层与应用层通信的问题,可以查以前的帖子。 建议多看点关于NDIS中发包的流程,主要有包由谁分配、由谁释放的问题。 |
|
|
地板#
发布于:2005-07-04 16:04
下面是引用zhaock于2005-07-01 16:24发表的: tdi好像icmp包接不到? |
|
地下室#
发布于:2005-07-04 16:47
tdi 收不到icmp. 处理icmp还是要ndis
|
|