我编写了一个驱动程序,它从IRP缓冲区中提取一个值。现在基于这个关键字,我必须传递或丢弃IRP。所以我需要与数据库进行通信,这对于内核模式驱动程序来说并不容易。因此,我使用应用程序或exe来执行此操作,这将导致我将通过或丢弃IRP的真或假。
我想将驱动程序与我在客户端应用程序中获取数据的应用程序链接。
我考虑过使用可以充当管道的临时文件。
请提出建议。
答案 0 :(得分:1)
我会选择IOCTL。
与数据库通信的应用程序首先将一个或多个IOCTL发送到驱动程序。我们称之为IOCTL-1的IOCTL。
IOCTL-1的完成标识了驱动程序对数据库的请求。请求详细信息可以在IOCTL输出缓冲区中传递。
应用程序检测到IOCTL-1完成,检索请求详细信息,运行查询并使用不同的IOCTL(IOCTL-2)将结果传递给驱动程序。然后它重新发送IOCTL-1,以便驱动程序可以发出另一个请求。