WindowsXP3 + Visual 2010 + WDK 7600.16385.1 配置如下:
1. 新建一個空DLL項目
2. 增加一個主程序文件,如 entry.c
3. 找到配置管理器,添加一個新的配置叫做 Driver Debug(以後還可以再設置一個Driver Release),如圖
4. 在屬性管理器上找到 Driver Debug,右鍵菜單中找到“屬性”,開始配置
5. 在“常規”選項卡中
5.1 目標文件擴展名:修改爲 .sys
5.2 清除時要刪除的擴展名:添加一個 *.sys,其他繼承原來的系統設置
6. “VC++目錄”選項卡中
6.1 可執行文件目錄: 添加一條 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 庫目錄: 添加一條 F:\WinDDK\7600.16385.1\lib\win7\i386
7. “C/C++” 選項卡中
7.1 預處理器: “預處理器定義” 添加定義 WIN32=100;_X86_=1;WINVER=0x501;DBG=1 如果是 Release,那麼可想而知,不需要 DBG=1
7.2 高級: “ 調用約定” 修改爲 __stdcall(/Gz)
7.3 常規: “警告等級”設置爲 /W4 將警告視爲錯誤選爲 是/WX
其他爲建議可選項目
優化: 優化選項可以選擇爲 已禁用/Od
代碼生成: 緩衝區安全檢查 否
8. “鏈接器” 選項卡中
8.1 輸入: 在“附加依賴項”中輸入 ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB
把“忽略所有默認庫” 選擇爲 是 (/NODEFAULTLIB)
8.2 清單文件: 啓用用戶賬戶控制(UAC) 否 否則會出現 “/MANIFESTUAC”與“/DRIVER”規範不兼容
8.3 系統: “子系統” 選擇爲 控制檯(/SUBSYSTEM:CONSOLE)
“驅動程序” 選擇爲 驅動程序(/DRIVER)
8.4 高級: “入口點” 輸入爲 DriverEntry
“基址” 輸入爲 0x10000
把 “隨機基址” 中原來的 是 (/DYNAMICBASE) 內容刪掉,只留下空的文本框,因爲 “/DYNAMICBASE”與“/DRIVER”規範不兼容
把 “數據執行保護(DEP)” 中原來的 是 (/NXCOMPAT:NO) 內容刪除,只留下空的文本框,因爲 “/NXCOMPAT:NO”與“/DRIVER”規範不兼容
8.5 調試: 根據當前是 Driver Debug 還是 Driver Release 選擇是否生成調試信息 是(/DEBUG)
8.6 命令行: 添加一段 /SECTION:INIT,D /IGNORE:4078 這樣可以防止出現 4078的警告 【找到多個“INIT”節,它們具有不同的屬性(E2000020)】
常規: “啓用增量鏈接” 可以設置爲 否(/INCREMENTAL:NO) 建議選上
拷貝F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h,然後覆蓋掉F:\WinDDK\7600.16385.1\inc\api\sal.h
把 Microsoft Visual Studio 10.0\VC\include\CodeAnalysis 拷貝到 F:\WinDDK\7600.16385.1\inc\api 下!
附上3個相關配置的網頁,第三個相對於解決錯誤
http://social.msdn.microsoft.com/Forums/zh-CN/visualstudio2010zhchs/thread/17ef2a91-d6ff-476e-8c5b-4506f22ab713/
http://www.crazycoder.cn/Bo-abstracts-selected/Article187911.html
http://blog.csdn.net/randyrhoads/article/details/6058927