windows驱动开发学习进展----四

针对项目中的网络访问控制不便问题,通过修改底层网络驱动来优化上层操作体验。实现允许特定IP段访问的同时禁止其他IP段,确保后设置的策略不覆盖先前设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 这一周师兄又给了我新的任务:现在进行的项目中网络访问控制上层操作不太方便,比如要禁止访问IP段2——9,11——15,19——46,上层就要设置访问策略三次(IP段只能设置连续的),现在要我修改底层网络驱动以便上层能这样方便操作:先设置IP10,16——18能够被访问,然后设置2——46段不可访问,越先加的访问策略优先级越高,这样后面加的策略就不能覆盖前面的。由于这次的任务当前项目要用,而以前师兄给的任务都是实验性的,因此我兴致比较高,马上就动工了。经师兄指点,我打算这样实现,底层驱动维护的IP控制段结构体加了一个字段,IsAccess,控制本IP段是否访问(以前的实现是只要该IP段插入链表就不可访问),然后访问控制函数里加一个判断条件,如果IsAccess为TRUE,该IP放行,马上退出循环,不再向后寻找链表的其余部分,这样就实现了后加的IP段不能覆盖以前的IP段,当然,中间层DLL和上层控制界面也要做一些修改,添加IP段的时候加一个Checkbox以指示该IP段是可访问还是不可访问,不过这都是简单的事情。本来打算两个小时搞定的,看代码和写程序的确只用了两个小时,可是调试花了我大半下午,修改了驱动要重启加载才能生效看效果,其中还蓝屏了四五次(幸好我用的虚拟机),终于在今天晚上7点大功告成。这次驱动调试主要是用DbgView(感谢师兄教我用这个有用的工具),不断地跟踪上层和驱动,并打印我特意在代码中插入的字串,让我找到了错误。由于WinDbg的高级命令还不熟,再加上驱动源码级调试技巧还没完全掌握,所以只能用这种笨办法了。呵呵,虽然一个小程序,但还是很有成就感的。                                                                                                                                                         写于2007-09-19晚
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值