驅動程式與應用程式之間的通訊
--
驅動程式必須與應用程式進行通訊,才能最終達到應用程式控制裝置的目的,不然驅動有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,...