0

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

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

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

请提出一些建议。

4

1 回答 1

1

我会选择 IOCTL。

与数据库通信的应用程序从向驱动程序发送一个或多个 IOCTL 开始。我们将这种类型的 IOCTL 称为 IOCTL-1。

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

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

于 2012-06-27T18:44:56.953 回答