這篇文章比較適合初學驅動,搭建一個自動化的環境對於開發來說是事半功倍啊;
開發驅動,首先就是搭建開發的環境。既然是開發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 (ddkwizard+ddkbuild_bat+ddkbuild_cmd.rar裏是老版的.bat,不支持win7,所以網絡上下載了一個新版的bat文件:http://www.hollistech.com/resources/ddkbuild/ddkbuild.htm 下的3.15版的,我上傳資源裏有,3.15版的環境變量是WIN7BASE。總共需要:
新增WIN7BASE : C:\WinDDK\7600.16385.1 新增WLHBASE : C:\WinDDK\7600.16385.1 給PATH新增 ;C:\WinDDK\;
)
- 打開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)開啓項目的輸出顯示,能顯示項目生成時的細節!