如何在Windows中从内核模式启动用户模式程序

时间:2015-03-19 09:14:46

标签: kernel windows-kernel kernel-mode kmdf usermode

我有一个驱动程序(内核模式)(KMDF),我有一个用户首选项表单。我需要从驱动程序代码启动活动并获取首选项。 那么如何在Windows操作系统中从内核启动该用户模式程序?

2 个答案:

答案 0 :(得分:3)

让驱动程序在用户模式下执行某些操作的最佳方法是让它与可以执行工作的用户模式组件进行通信。所以你做的事情就像有一个用户模式服务,打开驱动程序的通道,然后当驱动程序需要做某事(例如,启动进程)时,它可以向服务发送消息。

在osronline中搜索反向调用模型以获取更多信息,或者如果您正在构建一个迷你过滤器,请查看FltSendMessage API文档。

正如其他海报所述,在DriverEntry中执行此操作可能不会起作用,因为甚至可能没有用户会话进行通信。

答案 1 :(得分:1)

除非你使用像APC这样的奇怪的无证技巧,否则你不能这样做,这可能会导致许多不兼容的问题; 只需将您的应用程序设置为自动启动(例如CurrentVersion \ Run),然后使用您需要发送的数据将IRP发送给驱动程序。