1. 安裝VS2010,WDK7.60(GRMWDK_EN_7600_1) 2. 新建VC 控制臺項目(選擇為空項目) 
3. 新建項目配置“driver” ,點擊下拉按鈕-點擊(配置管理器) 
輸入名稱(driver)點擊確定就可以了,其他的不要動哦! 
完成后的效果! 
點擊確定按鈕之后呈現(xiàn)出來的畫面 
鼠標(biāo)右擊新建的driver屬性,會彈出以下窗口! 4. 設(shè)置VC++路徑
<我把wdk安裝在E盤下> a. 配置可執(zhí)行文件目錄:E:\WinDDK\7600.16385.1\bin\x86; b. 配置包含目錄:E:\WinDDK\7600.16385.1\inc\ddk E:\WinDDK\7600.16385.1\inc\crt E:\WinDDK\7600.16385.1\inc\api c. 配置庫目錄: E:\WinDDK\7600.16385.1\lib\win7\i3865 新建C/C++文件 不然無C/C++設(shè)置選項 <剛開始我們創(chuàng)建了一個空的項目所以項目里沒有c++文件,現(xiàn)在要做的就是在空的項目-源文件-添加一個新建項c++文件> 常規(guī) 目標(biāo)文件擴展名:.sys //必選 6. 設(shè)置C/C++選項 常規(guī)選項卡 1 調(diào)試信息格式(C7 兼容(/Z7) //可選 2 警告等級 (2 級(/W2) //可選 3 將警告視為錯誤 (是(/wx) //可選 優(yōu)化選項卡 優(yōu)化(禁用/Od) //可選 預(yù)處理器 預(yù)處理器定義:WIN32=100;_X86_=1;WINVER=0x501;DBG=1 //必選 代碼生成 啟用最小重新生成:否 //可選
基本運行時檢查:默認值 //可選 運行時庫:多線程調(diào)試(/MTd) 或 多線程(/MT) //建議選 <本人選擇的是多線程調(diào)試(/MTd)> 緩沖區(qū)安全檢查:否 //可選 (可避免出現(xiàn) LINK : error LNK2001: 無法解析外部符號 __security_cookie) 高級 調(diào)用約定 __stdcall(/Gz) //必選 7. 鏈接器設(shè)置 常規(guī) 啟用增量鏈接:否(/INCREMENTAL:NO) //建議 選上 忽略導(dǎo)入庫:是 // 可選 ( 設(shè)置為此值時,必須在附加庫目錄中加: E:\WinDDK\7600.16385.1\lib\win7\i3865 這樣項目就不會依賴 IDE 環(huán)境的設(shè) 置) 如果否 ( 設(shè)置為此值時,將依賴 IDE 的環(huán)境的相關(guān)設(shè)置 ) 輸入 附加依賴項 ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB //必選 //NT式驅(qū)動 ntoskrnl.lib WDM式驅(qū)動 wdm.lib ( HalXXX 函數(shù)在Hal.lib, WmiXXX 函數(shù)在 wmilib.lib , NdisXXX函數(shù)在 ndis.lib ) ( 必要時需要增加微軟的標(biāo)準(zhǔn)庫 MSVCRT.LIB MSVCRTD.LIB(調(diào)試庫) LIBCMT.LIBIBCMTD.LIB(調(diào)試庫) ) ( 如果源碼中有 source 文件,那么該文件的 TARGETLIBS 字段會列出該項 目需要的庫 ) 忽略所有默認庫: 是 (/NODEFAULTLIB) //必選 清單文件: 啟用用戶賬戶控制(UAC) 否 //必選 不然會出現(xiàn) >LINK : fatal error LNK1295: “/MANIFESTUAC”與“/DRIVER”規(guī)范不兼容;鏈接時不使用“/MANIFESTUAC” 調(diào)試: 生成調(diào)試信息 是(/DEBUG) //可選 生成映像文件:是(/MAP) //可選 映像文件名:$(TargetDir)$(TargetName).map //可選 系統(tǒng)(System) 子系統(tǒng): 控制臺(/SUBSYSTEM:CONSOLE) //必選 堆棧保留大?。?194304 //可選 堆棧提交大?。?nbsp; 4096 //可選 驅(qū)動程序: 驅(qū)動程序(/DRIVER) //必選 高級: 入口點:DriverEntry //必選 隨機基址:清空 //把框里的數(shù)據(jù)刪掉。(yes也不是no也不是就是要一個干干凈凈的文本框) //必選 不然會出現(xiàn) e:\xxx.sys : fatal error LNK1295: “/DYNAMICBASE”與“/DRIVER”規(guī)范不兼容;鏈接時不使用“/DYNAMICBASE” 數(shù)據(jù)執(zhí)行保護(DEP): 清空 //把框里的數(shù)據(jù)刪掉。(yes也不是no也不是就是要一個干干凈凈的文本框) //必選 不然會出現(xiàn) e:\xxx.sys : fatal error LNK1295: “/NXCOMPAT:NO”與“/DRIVER”規(guī)范不兼容;鏈接時不使用“/NXCOMPAT:NO”
設(shè)置效應(yīng)和:是(/RELEASE) //可選 基址:0x10000 //建議選上 命令行:/SECTION:INIT,D /IGNORE:4078 (建議不要寫進去,會報錯!) 最后給出一個超級簡單的代碼來測試一下我們配置的是否成功?? #include "ntddk.h" NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath) { return STATUS_UNSUCCESSFUL; } 如果沒有報錯那么恭喜你配置成功了!
|