如何學習Windows驅動程式開發

2021-06-05 14:28:29 字數 1701 閱讀 5778

很多人都對驅動開發有興趣,但往往找不到正確的學習方式.當然這跟驅動開發的本土化資料少有關係.大多學的驅動開發資料都以英文為主,這樣讓很多驅動初學者很頭疼.本人從事驅動開發時間不長也不短,大概也就3~4年時間.大多數人都認為會驅動開發的都是牛人,高手之類的.其實高手,牛人不是這樣定義的.我們在學習驅動開發之前,一定要明白乙個道理:術業有專攻,不要盲目跟風.

[本內容適用環境及工具] 

1> windows系統下

2> vc6.0以及vs2003版本以上

3> windows驅動開發包(ddk(老版本) wdk(新版本))

4> 有能力著可以安裝vmware

[本內容適用群體] 

1> 具有c/c++語言基礎的人

2> 具備高中以上文化水平的邏輯思維

[具備windows系統理論書籍] 

1> windows核心程式設計

2> win32多執行緒程式設計

3> 深入解析windows作業系統

4> windows作業系統原理

faq1:為什麼需要[具備windows系統理論書籍]這4本書? 

答:驅動是windows系統的乙個重要的組成部分,深入windows系統核心的乙個體系,就因為驅動跟系統核心聯絡得十分緊密,所以涉及了不少系統的基礎理論以及原理.因此在學習驅動開發之前必須先明白windows系統的基礎開發理論,windows系統的運作原理,windows系統的架構體系.那麼我提供的上面4本書是目前市面上我認為最經典最全面的書籍了.

[具備windows驅動開發書籍] 

1> windows驅動開發詳解

2> windows裝置驅動程式wdf開發

faq2:為什麼需要[具備windows驅動開發書籍]這2本書? 

答:假設你對windows系統的基礎理論紮實了,也看完了所說的[windows系統理論書籍]這4本書,而且你還從事開發過windows程式或者大程式的經驗者.那麼你進入windows驅動開發的時候,需要一本經典的驅動入門開發書籍即可正確入門.現在我提供了[windows驅動開發書籍]這2本書完完全全針對windows驅動開發入門而編寫的書籍.當然我首要推薦 軟體除錯

2> windows使用者態程式高效排錯

faq3:為什麼需要[具備windows除錯基礎理論書籍]這2本書? 

答:在開發驅動的情況下,你少不了要除錯驅動程式.那麼如何除錯驅動程式呢? windows已為你考慮到這個問題了並開發了一套強有力的除錯工具:windbg .如何學習這個工具的除錯呢?那麼現在市面上只有這2本書針對windbg講解得還比較到位,至少針對除錯命令的使用,已經用中文講解了,大家可以通過2本書先大概了解windbg的除錯命令,然後再進一步進行google搜尋並深入學習.

[驅動開發擴充套件書籍] 

1> 寒江獨釣-windows核心安全程式設計

2> windows核心原理與實現

3> rootkit windows核心安全防範

faq4:為什麼需要[驅動開發擴充套件書籍]這2本書? 

答:熟話說:學無止境,驅動開發領域是乙個很龐大的體系,這歸根於驅動框架多樣化而決定的.驅動包含了:檔案驅動,磁碟驅動,顯示卡驅動,網路驅動,等等不同的種類,每一種類就是乙個領域,你決定你的能力需要擴充套件到多方面,那麼你可以考慮先我這裡提供的這3本書來學習,通過閱讀這3本書,你會發現驅動可以做很多你意想不到的事情.本人從事開發驅動將近4年,也僅僅涉及 檔案驅動,磁碟驅動以及一些小型驅動而已.這些的學習我也僅僅是根據需求來進行選擇性學習.每個人都有自己的能力極限,大家要量力而行. 

Windows下如何除錯驅動程式

windows核心分析索引目錄 一 配置windbg使用雙機除錯 win10中 windbg vmware win7雙機除錯 設定 二 設定好windbg符號表 注意 不同的符號表項之間使用 引號 分割。1 表中填寫如下內容 srv d symbolslocal c users 97905 sour...

windows驅動程式開發初探

最近,由於需求推動,自己得開始學一下在windows下如何開發驅動程式。雖然,後來由於其他的原因使得學習沒繼續下去,但是我還是把一些粗略的學習經歷與體會寫在這裡,方便自己日後捲土重來,也方便其他的對windows開發一竅不通的有志之士參考一下。一 開發的目的 二 開發的歷程 1 學習的歷程 要開發出...

驅動程式學習筆記

什麼是驅動程式 驅動程式就是使硬體工作的一種特殊軟體,它執行在作業系統的核心空間 虛擬位址0xc0000000到0xffffffff 封裝硬體細節,服務於系統呼叫。驅動程式和應用程式的區別 1.應用程式執行在使用者空間,驅動程式執行在核心空間。2.應用程式可使用標準的庫函式,而驅動程式連線到核心,只...