原创 驅動程序(8) Windriver初步使用和快速生成驅動程序代碼

Windriver簡介 之前使用微軟WDF框架下的WDK開發Windows驅動程序,使用起來調試速度太慢了,同時需要對內核態驅動程序有一定了解,就轉到使用Windriver來開發驅動程序。就我個人而言,這款軟件最大好處就在於它屏蔽了

原创 驅動程序(3) WDF下DMA傳輸的驅動程序代碼詳細說明之頭文件

之前提到根據KMDF模板生成的程序裏主要有5個頭文件和3個源文件,接下來的幾篇文章則會對這些文件詳細說明,一個驅動程序是怎樣寫成的。這一篇主要說明幾個頭文件。 1. device.h /*++ Module Name: device

原创 驅動程序(4) WDF下DMA傳輸的驅動程序代碼詳細說明之driver.c

從這一篇開始介紹幾個比較重要的源文件和應用程序,並且會對其中一些關鍵代碼進行說明。這些代碼流程都是本人親身測試可行的,但是由於當時調試時雜七雜八的東西加的太多,現在看起來有的地方的代碼風馬牛不相及,如果完全照搬的話可能行不通的,還是需

原创 驅動程序(7) WDF下DMA傳輸的驅動程序代碼詳細說明之應用程序

這一篇主要說明應用程序怎麼去和驅動程序通信的,包括識別打開驅動程序,傳遞數據到驅動程序,同時接收驅動程序返回的數據。 application.c 首先是應用程序的創建,WDF裏利用模板生成驅動程序時時不帶有應用程序的源文件的,需要我

原创 驅動程序(6) WDF下DMA傳輸的驅動程序代碼詳細說明之queue.c

這一篇主要講queue.c裏對於消息請求隊列的處理,涉及到了和應用程序的通信,同時爲了以後的項目需求,也加入了DMA傳輸和傳輸完成後的MSI中斷處理。 queue.c /*++ Module Name: queue.c Abstrac

原创 驅動程序(5) WDF下DMA傳輸的驅動程序代碼詳細說明之device.c

這一篇文章說明了在device.c文件裏,驅動程序怎樣枚舉設備,然後獲得設備資源,並將其顯示出來供開發者使用。 device.c /*++ Module Name: device.c - Device handling events

原创 驅動程序(1) win10下Visual Studio安裝以及雙機調試搭建

前言:畢業上班以來,現在這個項目比較缺一個做windows下驅動程序開發的,所以本人就負責這方面的工作。之前沒有接觸過,完全萌新,全靠一本武安河編著的《Windows設備驅動程序WDF開發》和各路網上大神們的博客。現在把這段時間來的一