通过事件达到同步向应用层传输数据的方法。

来源:互联网 发布:微软远程桌面控制软件 编辑:程序博客网 时间:2024/06/01 12:45

通过事件的方式,达到从驱动向应用层传输信息的目的。
没想到今晚搞定了这个问题,具体的过程是这样的,我首先在驱动中新建两个事件,
然后,当需要挂起的时候运用它们。。。


我的信息传输策略:
1:在应用层创建一个线程,专门用来和驱动进行交互
2:在这线程中,用一个死循环来等待底层的信息,只要有信息到来,我们就处理
3:当我们需要拒绝这个操作的时候,我们向下层发送一个 IO ,我们会在这个 IO 处
设置相应的 BOOL 类型,然后,当我们的程序需要判断的时候,我们可以利用上;

 

流程图:

 

应用层创建线程------> 发送读取注册表信息的请求 -----> 如果发送成功,有一个对话框提示我们操作,YES就是PASS 。。。

 

驱动层中:
1:在 PASS 和 UNPASS 中 设置了事件;

2:在返回当前操作注册表信息的 IO 中,重新将设置事件;

3:在对注册表进行操作的过程中,当我们保存了程序当前要操作的字符串后,
   挂起程序,等待应用层的通知;

4:当我们作出决定的时候,我们将回到前边挂起程序继续执行,这时,我们同样要重新设置那个我们用来挂载的事件;

 

现在,我们就得到了应用层做出的选择。。。
通过对驱动层和应用层的信息传输的实现,使我对事件的使用有了更深的认识,
以及一些更高级的一些同步手法,我的主动防御系统也在不断完善中。。。