2017-08-31 43 views
0

我已經構建了一個簡單的PCI驅動程序,用於讀取和寫入數據到PCI設備。我還添加了中斷支持,所以當有PCI中斷時,調用ISR。這一切似乎工作。Windows KMDF驅動程序,通過通知通知變更應用程序是否有可能

我想通知中斷的外部應用程序。到目前爲止,我還沒有找到合適的機制。中斷可能隨時發生,並取決於連接到PCI設備的傳感器。

我已經發現了以下內容: - 其可以通過讀出被傳遞到KMDF驅動器,寫入

1事件對象,的IOControl命令(重疊對象)

2即插即用通知,其可以是使用由(Toaster示例代碼)驅動程序通知應用程序的PNP事件。

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

回答

0

至少有2種方式來實現你在找什麼

  1. 倒呼叫模型 - 發送IOCTL(S)的驅動器,驅動程序將繼續懸而未決,將完成他們的,當它需要以通知用戶模式關於它感興趣的事件的發生。您可以閱讀關於此方法的更多信息here
  2. 使用共享事件句柄。用戶模式應用程序使用IOCTL將事件句柄傳送到內核模式。內核模式遞增引用計數以確保該句柄在需要使用時保持有效,然後在需要時發出事件信號。你可以閱讀更多關於這種方法here

第一種方法是讀出該鏈接的文章,你會發現各種原因更佳。如果您的用例要求內核模式不僅指示事件的發生,還要將一些數據發送回用戶模式,那麼第二種方法不適合您的要求,您應該只關注第一種方法。

+0

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

相關問題