Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Notifications Windows KMDF驱动程序,通过通知通知应用程序更改,是否可能_Notifications_Driver_Pci_Kmdf - Fatal编程技术网

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

Notifications Windows KMDF驱动程序,通过通知通知应用程序更改,是否可能,notifications,driver,pci,kmdf,Notifications,Driver,Pci,Kmdf,我构建了一个简单的PCI驱动程序,用于向PCI设备读写数据。我还添加了中断支持,因此当出现PCI中断时,将调用ISR。这一切似乎都奏效了 我想将中断通知外部应用程序。到目前为止,我还没有找到合适的机制。中断可能在任何时候出现,并且取决于连接到PCI设备的传感器 我发现:- 1可通过读、写、iocontrol命令传递给KMDF驱动程序的事件对象(重叠对象) 2个即插即用通知,可供(烤面包机示例代码)驱动程序用于通知应用程序PNP事件 通知方法将是理想的,但是它看起来不像是针对我的特定用例的通知方法

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

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

我发现:-

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

2个即插即用通知,可供(烤面包机示例代码)驱动程序用于通知应用程序PNP事件


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

至少有两种方法可以实现您想要的

  • 反向调用模型-向驱动程序发送IOCTL,驱动程序将保持挂起状态,并在需要通知用户模式其感兴趣的事件发生时完成这些操作。您可以阅读有关此方法的更多信息
  • 使用共享事件句柄。用户模式应用程序使用IOCTL将事件句柄与内核模式进行通信。内核模式增加引用计数,以确保句柄在需要使用时保持有效,然后在必要时发出事件信号。您可以阅读有关此方法的更多信息

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

    使用反向调用方法。效果很好。