Mini Filter驱动程序与Windows服务通信

时间:2014-07-10 11:57:57

标签: c++ c winapi driver minifilter

我正在创建一个迷你过滤器驱动程序。在那里我与用户模式应用程序通信,以获得用户的一些数据。我使用“通信端口”与用户模式通信。我试图与用户模式应用程序通信它工作正常。

我得到的其他建议就是使用Windows服务来获取数据,因为它始终在运行,我们希望用户模式应用程序始终运行。

我的问题是

1)我可以在Windows服务中创建“通信端口”吗?

2)如果我创建Windows服务,如何获取特定的用户信息。我的意思是,当我发送请求服务时,服务如何知道需要从哪个用户会话数据中获取?

3)哪一个更好,我的意思是用户模式或Windows服务是更好的解决方案。

1 个答案:

答案 0 :(得分:0)

  

1)我可以创建"通信端口"在Windows服务?

是的,您可以在服务中创建它。

  

2)如果我创建Windows服务,如何获取特定的用户信息。我的意思是,当我发送请求服务时,服务如何知道需要从哪个用户会话数据中获取?

服务确实在系统帐户下运行,而不是在任何已登录的用户下运行。因此,要向当前登录用户显示弹出窗口或对话框,您可以查看WTSGetActiveConsoleSessionId()或类似的api以获取控制台会话。

  

3)哪个更好,我的意思是用户模式或Windows服务是更好的解决方案。

取决于您的设计。正如您所提到的,如果您的驱动程序依赖于此类需求,那么服务始终会运行,然后执行服但实际与用户互动需要付出更多努力。

但是如果您的驱动程序可以在没有任何服务/应用程序连接的情况下工作,那么请使用应用程序。