C# 应用程序是不是可以与内核驱动程序通信?
Posted
技术标签:
【中文标题】C# 应用程序是不是可以与内核驱动程序通信?【英文标题】:Is it possible for a C# application to communicate with a Kernel Driver?C# 应用程序是否可以与内核驱动程序通信? 【发布时间】:2016-04-25 10:37:11 【问题描述】:我一直想知道我的 KMDF 驱动程序是否能够直接与 C# 应用程序通信,反之亦然。
经过几项研究,我只能发现微过滤器可以在 C# 服务中工作,不太确定 C# 应用程序(具有常规 Win32 权限)
以下是正确的解决方案吗...? 内核驱动程序 (C) DLL (C++) 应用程序 (C#)
提前谢谢你。
【问题讨论】:
那么这与 C++ 或 C 有什么关系?当然,NT 内核主要是用 C 编写的,但是...? 我已经包含了这些标签,以防有人知道这样的解决方案是否有效。 检查 DeviceIOControl API 用 C++ 编写的 KMDF 驱动程序示例和与之通信的 C# Win App 可以在这里找到:delog.wordpress.com/2012/03/23/… 你引用的delog解释了WinUSBNet的一个例子,它仅限于USB。 【参考方案1】:通常微过滤器使用FltSendMessage function,而不是DeviceIOControl
只需让 Pinvoke 调用它或使用包装器
【讨论】:
以上是关于C# 应用程序是不是可以与内核驱动程序通信?的主要内容,如果未能解决你的问题,请参考以下文章
linux内核,驱动,应用程三者的概念和之间的关系 - Avatarx
libdrm 是不是通过 ioctl() 与内核 DRM/显卡通信?