Windows驅動開發入門

caperingrabbit發表於2009-12-14

 

因為公司有一個專案需要用到驅動的開發技術,因此自己也開始自己學習驅動的開發了。接觸Windows驅動的開發也有幾個月了,在這個過程中,雖然有工作的事情要忙,學的不是很專心,也看了不少書,自己也動手寫了一點程式碼。可是過了幾個月之後,我突然迷茫了,怎麼感覺學的這麼亂呢,我學了點什麼東西啊,自己也回答不上來。我也想找高人指點一下,然而並未有人迴應,於是我就自己思考。

這兩天,我沒怎麼看新的東西,一直在思考我以前看的書和自己敲的程式碼,一點一點的總結,一點一點的回憶。慢慢地,理出一點脈絡,與大家分享一下。

學習Windows驅動程式設計,開始的時候要直觀的理解驅動程式的結構,這只是一個直觀的印象,卻能給人帶來很多東西,儘量自己敲一下,即使是看一眼書敲一點也行(因為本人的技術起點比較低,就是採用了這種比較笨的方法,或許還有更好的)

在熟悉了驅動程式的結構之後,就應該熟悉驅動程式開發的環境了,個人比較喜歡DDK,不過在寫程式碼的過程中容易出現一些因為書寫而出現的錯誤,也可由配置VC或者VS的環境,這樣好一點,DS也挺好用的。

這些東西如果沒弄好,就算去看原理,還是感覺寫不出來沒什麼效果,就算有什麼想法了,也沒法動手實踐一下,因為你對前面的東西並不熟悉。

熟悉了這些之後,應該說是知道了驅動開發的一些框架了,這時候應該能寫出一個Helloworld一類的東西了。然後就是往框架裡添具體的枝葉了,接下來學習驅動開發中場用的資料結構、Windows的記憶體管理、同步的問題、Pnp的處理等原理和具體的程式設計技巧。學習這些的時候,還是不能忘記動手,畢竟是做開發的,看看別的程式碼,沒事敲敲,敲別人的也行,慢慢就能寫出自己想要得到東西了。

驅動的除錯是一個比較令人崩潰的活,需要就是耐心。

至於學習的資料,推薦從《Windows開發技術詳解》看起,相對而言,起點比較低,容易上手。

接下來就是看看《Programming the Microsoft Windows driver model》,英文功底好的看原版,不好的就看看中文版的。

驅網的《寒江獨釣》也蠻不錯的,有了一點的基礎之後,可以進行例項的開發,不錯的參考書。

至於其他的資料,看看網上高手推薦的,我就不再贅述了。不過,不管看什麼資料,都是需要耐心和自己的總結的,畢竟驅動開發不像普通的應用程式的開發那麼容易。

ps:個人文件,請勿轉載,轉載請標明出處。同時釋出看雪論壇一份。

相關文章