這篇文章比較適合初學驅動,搭建一個自動化的環境對於開發來說是事半功倍啊;
開發驅動,首先就是搭建開發的環境。既然是開發windows下的驅動程序,那MS的開發工具是一定要的。現在vs都到2010了,所以,也不能總是抱着vs6.0寫代碼,也要與時俱進~當然又不能太潮流嗎……所以選用vs2008開發驅動。好了廢話不多說了,下面記錄一下我搭環境的步驟。
一、VS2008的安裝
vs2008的詳細安裝見:Visual Studio 2008系列教程(一):VS 2008安裝詳解!
ok 接下來該驅動開發的核心了……
二、WDK的介紹、下載、安裝及配制
1、關於WDK
Windows Driver Kit(驅動程序工具包): 是一種完全集成的驅動程序開發系統,它包含 Windows Driver Device Kit (DDK),用於測試 Windows 驅動程序的可靠性和穩定性,包括:
- Windows Driver Foundation (WDF) 簡化了 Windows 驅動程序的開發和支持。
- 頭文件重構 (Windows Vista 和更高版本)通過提供更簡單的目錄結構、避免聲明沖突以及對所有支持的 Windows 版本使用單一頭文件集,降低頭文件的復雜性。
- Installable File Systems (IFS) Kit將頭、庫、示例以及文檔作為 WDK 的一部分分發。
- 驗證程序和靜態分析工具, (如 PREfast 和 靜態驅動程序驗證程序)幫助您在編譯時查找 bug。
2、下載WDK
曾經下載WDK好像還必須得http://connect.microsoft.com/注冊后才能下載,而且下載后還有一句提示:
“提醒:您必須接受附帶的許可條款才能使用此軟件。不得分發下載軟件包。”
所以當時下載的時候還要走一些不得不走的路。不過,今天好像發現WDK能直接下載了
如果不能正常下載,具體操作請見如何下載WDK
3、安裝WDK
- 用虛擬光驅加載下載好的.ISO鏡像文件,雙擊運行,出現下面親切的畫面
- 接觸,出現以下畫面,在左側的樹形復選框中選擇要安裝的組件及工具,建議全部安裝,選擇好后點擊“OK”~~后面的就簡單了~
- 爾后,一路確定默認即可
三、DDKWzard的介紹、下載、安裝及配制
在VS2008IDE中沒有提供驅動開發的項目選項,當然可以用普通工程,然后手動在VS中配制相應的編輯連接以及調試選項,但是如此只來,每次都要重復些復雜的步驟。在http://ddkwizard.assarbad.net/網站上發現了一個很好用的輔助工具DDKWizard,能夠方便地對開發環境進行配置,真是適合想我這樣懶人啊,工具的作者也自稱是因為懶惰才開發此工具,看來“懶惰是推動科技發展的動力”一點不假 。
- DDKwzard安裝需要三個文件:DDKWzard主程序:安裝VS2008的項目模板ddkwizard_setup.exe
- DDKBUILD.CMD:應該是用VS2008調用WDK編輯編譯器的一系列腳本dkbuild_cmd.zip
- DDKBUILD.BAT :估計也是是用VS2008調用WDK編輯編譯器的一系列腳本ddkbuild_bat.zip
- 安裝ddkwizard_setup,默認安裝,一路Next點過即可,將DDKBUILD.CMD與DDKBUILD.BAT考到WDK的安裝目錄,或者其它目錄也行,只要在后續的設置就行。如:我將其放在wdk的目錄下,如圖
- 設置環境變量
添加相應的環境變量,如要開發XP系統下的驅動則添加WXPBASE,變量值為WDK的根目錄,如圖
如果為其它系統開發驅動則填寫相應的環境變量
NT 4.0 -----------NT4BASEwindows2000----W2KBASE
windowsXP-------WXPBASE
windows2003----WNETBASE
win7/2008 R2----W7BASE
- 打開VS 2008,菜單“工具”->“選項”->左側“項目和解決方案”->“VC++目錄”->右側“可執行文件”下拉列表->添加一項D:/WINDDK(根據你的實際情況,就是第1步中DDKBUILD.CMD與DDKBUILD.BAT所在的路徑)。
- 然后就可以在我們的VS2008中新建項目了,如下圖,在Visual C++選項卡中多了DDK Project的項目類型,選擇相應的模板添加我們的項目,點擊確定
- 確定后出現DDKWzard的項目創建頁面,在“Choose the DDKBUILD you want to use”中選擇“ddkbuild.cmd”或者“ddkbuild.bat”,在其下面選擇我們要為Who(2000,xp……)開發的驅動。
最后finish - 在解決方案中便是由DDKWzard為我們自動生成的一個簡單的驅動程序框架。
- 最后點擊F6生成解決方案,成功生成后在項目的objchk_win7_x86/i386文件夾下會生成幾個文件
driver1.obj ---編譯生成的2進制文件
driver1.pdb---用於調試時使用的符號文件
vc90.pdb-----用於調試時使用的符號文件
driver1.sys---就是我們拭目以待的驅動程序文件
四:可能出現的錯誤
- error PRJ0019: 某個工具從以下位置返回了錯誤代碼: "正在執行生成文件項目操作"
錯誤原因:沒有設置“項目和解決方案”中的“VC++目錄”
解決方案:在“工具”->“選項”->“項目和解決方案”->“VC++目錄”->“可執行文件”添加ddkbuild.cmd和ddkbuild.bat所在的路徑。- 錯誤的結果 3 (從“C:/WINDOWS/system32/cmd.exe”返回)。
錯誤原因:沒有設置環境變量
解決方案:添加相應的環境變量
五:友情提示
在用VS2008開發驅動時,建議在菜單“視圖”->“輸出”(或快捷鍵:Ctrl+W,O)開啟項目的輸出顯示,能顯示項目生成時的細節!