Windows KMDF驱动程序,通过通知通知变更应用程序是否有可能

问题描述:

我已经构建了一个简单的PCI驱动程序,用于读取和写入数据到PCI设备。我还添加了中断支持,所以当有PCI中断时,调用ISR。这一切似乎工作。Windows KMDF驱动程序,通过通知通知变更应用程序是否有可能

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

我已经发现了以下内容: - 其可以通过读出被传递到KMDF驱动器,写入

1事件对象,的IOControl命令(重叠对象)

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

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

至少有2种方式来实现你在找什么

  1. 倒呼叫模型 - 发送IOCTL(S)的驱动器,驱动程序将继续悬而未决,将完成他们的,当它需要以通知用户模式关于它感兴趣的事件的发生。您可以阅读关于此方法的更多信息here
  2. 使用共享事件句柄。用户模式应用程序使用IOCTL将事件句柄传送到内核模式。内核模式递增引用计数以确保该句柄在需要使用时保持有效,然后在需要时发出事件信号。你可以阅读更多关于这种方法here

第一种方法是读出该链接的文章,你会发现各种原因更佳。如果您的用例要求内核模式不仅指示事件的发生,还要将一些数据发送回用户模式,那么第二种方法不适合您的要求,您应该只关注第一种方法。

+0

使用反向调用方法。很好地工作。 –