如何:在用户模式和内核模式之间进行双向通信

时间:2012-06-26 05:11:15

标签: driver kernel-mode wdf minifilter

我编写了一个驱动程序,它从IRP缓冲区中提取一个值。现在基于这个关键字,我必须传递或丢弃IRP。所以我需要与数据库进行通信,这对于内核模式驱动程序来说并不容易。因此,我使用应用程序或exe来执行此操作,这将导致我将通过或丢弃IRP的真或假。

我想将驱动程序与我在客户端应用程序中获取数据的应用程序链接。

我考虑过使用可以充当管道的临时文件。

请提出建议。

1 个答案:

答案 0 :(得分:1)

我会选择IOCTL。

与数据库通信的应用程序首先将一个或多个IOCTL发送到驱动程序。我们称之为IOCTL-1的IOCTL。

IOCTL-1的完成标识了驱动程序对数据库的请求。请求详细信息可以在IOCTL输出缓冲区中传递。

应用程序检测到IOCTL-1完成,检索请求详细信息,运行查询并使用不同的IOCTL(IOCTL-2)将结果传递给驱动程序。然后它重新发送IOCTL-1,以便驱动程序可以发出另一个请求。

相关问题