Windows KMDF驱动程序,通过通知通知更改应用程序是可能的

时间:2017-08-31 07:10:53

标签: notifications driver pci kmdf

我已经构建了一个简单的PCI驱动程序,用于读取和写入PCI设备的数据。我还添加了中断支持,因此当有PCI中断时,会调用ISR。这一切似乎都有效。

我想通知外部应用程序中断。到目前为止,我还没有找到合适的机制。中断可能随时发生,并且取决于连接到PCI设备的传感器。

我找到了以下内容: -

1可以通过read,write,iocontrol命令传递给KMDF驱动程序的事件对象(重叠对象)

2个即插即用通知,驱动程序可以使用(Toaster示例代码)来通知应用程序PNP事件。

通知方法是理想的,但对于我的特定用例,它看起来并不存在。

1 个答案:

答案 0 :(得分:0)

至少有两种方法可以实现您的目标

  1. 倒置呼叫模型 - 将IOCTL发送给驱动程序,驱动程序将保持挂起状态,并在需要通知用户模式发生其感兴趣的事件时完成它们。您可以阅读关于这种方法的更多信息here
  2. 使用共享事件句柄。用户模式应用程序使用IOCTL将事件句柄传递给内核模式。内核模式会增加引用计数,以确保句柄在需要使用时保持有效,然后在必要时发出事件信号。您可以阅读有关此方法的更多信息here
  3. 出于阅读链接文章时您会发现的各种原因,第一种方法更受欢迎。如果您的用例要求内核模式不仅指示事件的发生,而且还将一些数据发送回用户模式,那么第二种方法不适合您的要求,您应该专注于第一种方法。