加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 内核模式和用户模式应用程序之间的通信

发布时间:2020-12-14 01:58:55 所属栏目:Windows 来源:网络整理
导读:我已经构建了一个在内核模式下运行的WFP标注驱动程序. 现在,我试图弄清楚如何在这个驱动程序和我在用户模式下运行的GUI应用程序之间进行通信.有任何想法吗? 我想要的是这样的: 标注驱动程序检测端口4444上的接入连接(这不是我的问题的一部分) 驱动程序向用
我已经构建了一个在内核模式下运行的WFP标注驱动程序.
现在,我试图弄清楚如何在这个驱动程序和我在用户模式下运行的GUI应用程序之间进行通信.有任何想法吗?

我想要的是这样的:

>标注驱动程序检测端口4444上的接入连接(这不是我的问题的一部分)
>驱动程序向用户模式应用程序发送消息.
>应用程序向用户显示通知,并询问是否应接受/阻止连接.
>用户模式应用程序将用户对响应驱动程序的响应发回.

谢谢!

解决方法

我同意LordDoskias.您需要创建一个设备对象并使其可用于Win32领域.然后,您可以使用CreateFile,ReadFile,WriteFile和已提到的DeviceIoControl来发送请求.

为了从驱动程序获取通知到应用程序,您可以使用所谓的inverted call model.您发送一些IRP(通过上述机制之一)并以异步方式(或在单独的线程中)执行此操作.然后,驱动程序让它们悬空,直到它必须通知用户模式组件有关某事,然后返回完成的IRP.替代方法是设置一些事件并拥有UM请求,无论驱动程序在某种队列中保留什么…

要点是,驱动程序没有直接的方式可以向用户模式应用程序发送一些消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读