驅動程式與應用程式之間的通訊

2021-05-26 12:36:53 字數 856 閱讀 4786

驅動程式與應用程式之間的通訊

--

驅動程式必須與應用程式進行通訊,才能最終達到應用程式控制裝置的目的,不然驅動有qiu用。

要通訊就涉及到3個方面:

1.應用程式與驅動程式通訊

2.驅動程式與應用程式通訊

3.資料傳輸

下面分別討論

1。應用程式與驅動程式通訊

2。驅動程式與應用程式通訊

2-1 驅動程式在什麼時候與應用程式通訊

驅動程式在捕獲特點事件(如中斷)後,就應當和應用程式通訊

2-2 驅動程式通訊的方法

---deviceiocontrol非同步完成

---win32事件

2-3 deviceiocontrol非同步完成

當應用程式呼叫deviceiocontrol函式時,驅動程式首先把此irp儲存,然後設法返回status_pending。在乙個事件發生後,驅動程式完成該irp。注意地方:由於irp是未決的,所以必須將此irp儲存,當應用程式退出時候,若irp仍未發生,必須取消該irp。(irql<=dispatch_level)

2-4 win32事件

應用程式建立乙個事件,直接將該事件控制代碼傳遞給驅動程式,然後等待驅動程式傳送事件訊息。驅動程式在獲得該事件指標後,在irql<=dispatch_level級別下的例程中設定事件訊號狀態來觸發應用程式。

3。驅動程式獲取應用程式資料緩衝區的方法

---deviceiocontrol時候,通過i/o控制命令中的資料訪問方式來決定。實際也就是共享buffer和建立乙個mdl。

---readfile/writefile時候同上

文章出處:飛諾網(www.diybl.com):

驅動程式和應用程式之間通訊

正文 q 請問有什麼方法實現驅動程式主動和應用程式進行實時通訊,而不用應用程式採用定時查詢的方法?比如驅動有一事件發生需要立即通知應用程式,或驅動程式需要向應用程式讀取一些內容.a 有乙個很容易的方式,在驅動程式和應用程式之間用乙個事件。在應用程式createfile的時候,驅動程式iocreate...

驅動程式和應用程式通訊方法

驅動程式必須與應用程式進行通訊,才能最終達到應用程式控制裝置的目的,不然驅動有qiu用。要通訊就涉及到3個方面 1.應用程式與驅動程式通訊 2.驅動程式與應用程式通訊 3.資料傳輸 下面分別討論 1。應用程式與驅動程式通訊 1 1 應用程式實現與驅動通訊的過程 用createfile開啟裝置,用de...

應用程式與驅動程式6種通訊方式

應用程式與驅動程式6種通訊方式 於網際網路,交流學習 應用程式與驅動程式通訊方式據我所知,細分可以分6種,readfile,wirtefile方式的緩衝區裝置讀寫,直接方式讀寫,和其他方式讀寫。io裝置控制操作 即 devicecontrol 的緩衝記憶體模式ioctl,直接記憶體方式的ioctl,...