245
人物
VS2005+WINDDK+Driver Studio 3.2個人總結
通過在網上搜索大量的資料,終於把環境搭建起來。對於我這樣的驅動新手來說,理應把高手們的東西整理並總結下,方便以後的初學者。
這三個軟件的安裝順序沒有具體規定,也有高手推薦的順序,我自己也是重複安裝卸載,個人的順序是:VS2005、DriverStudio3.2、Windows XP DDK。個人覺得後麵兩個的安裝順序關係不大。
1.VS2005本人安裝的英文版,可以在網上下載。
2.DriverStudio3.2 和Windows XP DDK可以百度搜,由於個人的上傳上限為60M,不能上傳到CSDN,所以大家可以在網上下載。
3.DriverStudio3.2的補丁DSDDKEnv.zip,這個我上傳了,可以在我的資源中找到。
安裝過程中容易出錯的地方說明:
1.在安裝DriverStudio3.2,會提示一個ERROR 1904 module的錯誤,在這裏點擊ingore就行。
2.另外DriverStudio3.2選擇安裝路徑時不要有空格,本人在剛開始安裝時沒注意直接選擇了D:\program files路徑導致後來又重新安裝。
3.安裝DDK時,會彈出一個下麵對話框,要把列表中的全部勾選。
全部安裝完成後,接下來就是補丁修複
把下載的DSDDKEnv.zip解壓,用文件DSDDKEnv8.dll、DSDDKEnv8UI.dll分別替換掉...../DriverStudio/Common/Bin和DriverStudio/Common/Bin/1033目錄下的同名文件。
然後在開始菜單的運行中分別輸入以下兩條命令:
regsvr32 -u <安裝目錄>\DriverStudio\Common\Bin\dsddkenv8.dll,
例如本人輸入的為:regsvr32 D:\driverstudio\Compuware\DriverStudio\Common\Bin\dsddkenv8.dll
regsvr32 <安裝目錄>\DriverStudio\Common\Bin\dsddkenv8.dll
注:如果<安裝目錄>中有空格,那麼以上兩條命令會執行出錯。
這時打開VS2005,其菜單欄的Tools中出現了DriverStudio子菜單。接下來還有以下幾個工作要做:
1:Tools->DriverStudio->DDK Build Settings設置DDK路徑,即將DDK Root Directory設置為C:/WINDDK/2600(根據自己的安裝路徑修改)
2:生成vdw_wdm.lib,這個庫文件在以後編譯驅動時是需要的。過程如下:
首先,用VS2005打開..../DriverStudio/DriverWorks/source/VdwLibs2005.sln;
將VdwLibs設為Active Project;
然後右擊VdwLibs->Properties,VdwLibs Property Pages頂部的Configuration和Platform要分別改成Active(WDM Checked)和win32 Active,這個很重要。
注1:這個一定要改對!!不然生成的vdw_wdm.lib是錯誤的,錯誤的庫會導致以後編譯驅動時出錯,很煩的。
注2:檢查VdwLibs Property Pages->Librarian中的Output File是否為$(OutDir)/vdw_wdm.lib,如果不是,就改成這個。
最後編譯工程(用Tools->DriverStudio->Build Solution),vdw_wdm.lib就生成了(請確認\DriverStudio\DriverWorks\lib\i386\checked目錄下有生成)。
應該到此就安裝完成了。大家可以用VS2005打開.../DriverStudio/DriverWorks/Examples/wdm中的一個例程,比如hellowdm。然後用菜單欄的Tools->DriverStudio->Build Solution with DDK Build.exe。如果生成正確,即在.../DriverStudio/DriverWorks/Examples/wdm/hellowdm/sys/objchk/i386中出現了HelloWdm.sys,那麼就大功告成了,配置好了。
接下來我們用Tools->DriverWizard生成驅動模板(具體怎麼生成大家自己研究吧^_^)
驅動工程文件生成後,同樣用Tools->DriverStudio->Build Solution with DDK Build.exe編譯時,
會出現這個錯誤:1>NMAKE : U1073: don't know how to make 'C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib'
出錯原因是:根本就沒有C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib這個庫文件,這貌似是DS3.2的bug
解決辦法是:1:在Project的Property pages裏的Link=>Input=>Additional Dependencies項中去掉這個庫
2:在Project的source文件中找到這句話,刪掉就可以了哦:TARGETLIBS=$(DDK_LIB_PATH)/ntstrsafe.lib
$(DDK_LIB_PATH)/csq.lib。
最後更新:2017-04-03 15:21:44