Windows驅動程序開發前期準備

要開發一個windows驅動程序,須要先掌握C語言相關知識,並理解一些操做系統知識,而後搭建windows driver開發環境,以及準備一些必要的工具。windows

驅動程序與普通應用程序的區別

咱們知道,windows系統程序分爲四個運行級別:R0,R1,R2,R3,其中,R3運行應用程序,權限最低;R0運行內核代碼,管理硬件設備及運行驅動程序,權限最高,也就是說,一旦咱們的驅動代碼被OS內核加載,那麼咱們的驅動程序就具有了最高權限,這是一件很開心的事情,也是一件很可怕的事情,開心在於咱們能夠實現更高級的功能,可怕的是,一旦產生錯誤,系統就會藍屏。R1,R2兩個級別被Windows系統棄用,咱們沒必要理會。框架

NT、WDM、WDF的區別

對於一個驅動程序開發新手,包括我本身,其實很糾結。首先咱們分不清三者之間的關係和區別,其次,不知道到底該學哪一個。其實三者並沒有本質區別,學哪一個都行,當你遇到問題,須要解決問題的時候,就天然掌握和理解了。
NT:沒有電源管理和即插即用處處模塊
WDM:有電源管理和即插即用,可實現inf文件安裝
WDF:WDF框架是爲了減小開發者由於自身水平的限制而出現的沒必要要藍屏錯誤,WDF框架將操做準化,至關於把簡答題變成了填空題,下降了出錯機率。ide

經常使用工具

Visual Studio 20xx:開發工具
Windows SDK:開發庫
WDK:驅動開發庫
DebugViewer:調試內核,查看內核打印輸出
DriverMonitor:驅動加載工具,省去了手動安裝過程,很是方便
PcHunter:windows信息查看軟件,比OS自帶的任務管理器顯示內容更多
DeviceTree:查看設備列表
WinObj:windows對象查看
IDA Pro:反編譯工具(暫時用不到)
相關文章
相關標籤/搜索