【问题标题】:Windows KMDF driver, Informing application of a change via a notification, is it possibleWindows KMDF驱动程序,通过通知通知应用程序更改,是否可以
【发布时间】:2017-08-31 07:10:52
【问题描述】:

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

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

我发现了以下内容:-

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

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

通知方法是理想的,但它看起来并不适合我的特定用例。

【问题讨论】:

    标签: notifications driver pci kmdf


    【解决方案1】:

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

    1. 反向调用模型 - 将 IOCTL(s) 发送给驱动程序,驱动程序将保持挂起状态,并在需要通知用户模式它感兴趣的事件发生时完成它们。您可以阅读有关此方法的更多信息here
    2. 使用共享事件句柄。用户模式应用程序使用 IOCTL 将事件句柄传递给内核模式。内核模式增加引用计数以确保句柄在需要使用时保持有效,然后在必要时发出事件信号。您可以阅读有关此方法的更多信息here

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

    【讨论】:

    • 使用了反向调用方式。效果很好。
    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多