1. 新建一個(gè)空DLL項(xiàng)目 2. 增加一個(gè)主程序文件,如 entry.c 3. 找到配置管理器,添加一個(gè)新的配置叫做 Driver Debug(以后還可以再設(shè)置一個(gè)Driver Release),如圖 4. 在屬性管理器上找到 Driver Debug,右鍵菜單中找到“屬性”,開始配置 5. 在“常規(guī)”選項(xiàng)卡中 5.1 目標(biāo)文件擴(kuò)展名:修改為 .sys 5.2 清除時(shí)要?jiǎng)h除的擴(kuò)展名:添加一個(gè) *.sys,其他繼承原來的系統(tǒng)設(shè)置 6. “VC++目錄”選項(xiàng)卡中 6.1 可執(zhí)行文件目錄: 添加一條 F:\WinDDK\7600.16385.1\bin\x86 6.2 包含目錄:添加三條,分別為 F:\WinDDK\7600.16385.1\inc F:\WinDDK\7600.16385.1\inc\api F:\WinDDK\7600.16385.1\inc\ddk 6.3 庫(kù)目錄: 添加一條 F:\WinDDK\7600.16385.1\lib\win7\i386 7. “C/C++” 選項(xiàng)卡中 7.1 預(yù)處理器: “預(yù)處理器定義” 添加定義 WIN32=100;_X86_=1;WINVER=0x501;DBG=1 如果是 Release,那么可想而知,不需要 DBG=1 7.2 高級(jí): “ 調(diào)用約定” 修改為 __stdcall(/Gz) 7.3 常規(guī): “警告等級(jí)”設(shè)置為 /W4 將警告視為錯(cuò)誤選為 是/WX 其他為建議可選項(xiàng)目 優(yōu)化: 優(yōu)化選項(xiàng)可以選擇為 已禁用/Od 代碼生成: 緩沖區(qū)安全檢查 否 8. “鏈接器” 選項(xiàng)卡中 8.1 輸入: 在“附加依賴項(xiàng)”中輸入 ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB 把“忽略所有默認(rèn)庫(kù)” 選擇為 是 (/NODEFAULTLIB) 8.2 清單文件: 啟用用戶賬戶控制(UAC) 否 否則會(huì)出現(xiàn) “/MANIFESTUAC”與“/DRIVER”規(guī)范不兼容 8.3 系統(tǒng): “子系統(tǒng)” 選擇為 控制臺(tái)(/SUBSYSTEM:CONSOLE) “驅(qū)動(dòng)程序” 選擇為 驅(qū)動(dòng)程序(/DRIVER) 8.4 高級(jí): “入口點(diǎn)” 輸入為 DriverEntry “基址” 輸入為 0x10000 把 “隨機(jī)基址” 中原來的 是 (/DYNAMICBASE) 內(nèi)容刪掉,只留下空的文本框,因?yàn)?nbsp;“/DYNAMICBASE”與“/DRIVER”規(guī)范不兼容 把 “數(shù)據(jù)執(zhí)行保護(hù)(DEP)” 中原來的 是 (/NXCOMPAT:NO) 內(nèi)容刪除,只留下空的文本框,因?yàn)?nbsp;“/NXCOMPAT:NO”與“/DRIVER”規(guī)范不兼容 8.5 調(diào)試: 根據(jù)當(dāng)前是 Driver Debug 還是 Driver Release 選擇是否生成調(diào)試信息 是(/DEBUG) 8.6 命令行: 添加一段 /SECTION:INIT,D /IGNORE:4078 這樣可以防止出現(xiàn) 4078的警告 【找到多個(gè)“INIT”節(jié),它們具有不同的屬性(E2000020)】 其他為可以選擇的選項(xiàng) 常規(guī): “啟用增量鏈接” 可以設(shè)置為 否(/INCREMENTAL:NO) 建議選上 這樣編譯環(huán)境就設(shè)置完成了,還可以再添加一個(gè) Driver Release 版本,去掉調(diào)試信息 但是,這樣設(shè)置還是會(huì)有一堆編譯錯(cuò)誤,如: C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing ')' before 'const' 那么這時(shí)候需要拷貝F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h,然后覆蓋掉F:\WinDDK\7600.16385.1\inc\api\sal.h 這樣就會(huì)導(dǎo)致另外一個(gè)問題,Microsoft Visual Studio 10.0\VC\include\sal.h 中include了CodeAnalysis\sourceannotations.h,所以如果在編譯環(huán)境中調(diào)用build,會(huì)出現(xiàn)錯(cuò)誤找不到 sourceannotations.h,所以要: 把 Microsoft Visual Studio 10.0\VC\include\CodeAnalysis 拷貝到 F:\WinDDK\7600.16385.1\inc\api 下??! |
|