扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
当驱动程序截获网络数据包后,驱动程序要和应用程序进行通讯,通知应用程序对数据包进行判断,如果符合过滤规则,则接受数据包,否则,则放弃该数据包,其步骤大致如下:
(1)应用程序创建一事件Event;
(2)应用程序通过CreateFile创建驱动程序实例;
(3)把该事件的句柄传给驱动程序;
(4)驱动程序通过DeviceControl函数接受Event的句柄;
(5)应用程序通过DeviceIOControl函数传递控制驱动程序的消息;
(6)驱动程序通过Dispatch历程得到应用程序传来的消息,然后根据消息类型进行不同的服务;
(7)把结果数据放入共享内存区,设置Event事件通知应用程序所请求的事情已经办完;
(8)应用程序通过WaitForSingleObject来获知事件发生;
(9)应用程序在共享内存区获得数据,并重置该事件。
图2 驱动程序与应用程序通讯模型
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。