WINDOWS 7 配置驅動開發環境(wdk7.60)

  安裝VS2010,WDK7.60(GRMWDK_EN_7600_1)c++

2.  新建VC 控制檯項目(選擇爲空項目)api

3.  新建項目配置「driver」 ,點擊下拉按鈕-點擊(配置管理器)安全

輸入名稱(driver)點擊肯定就能夠了,其餘的不要動哦!cookie

完成後的效果!多線程

點擊肯定按鈕以後呈現出來的畫面函數

鼠標右擊新建的driver屬性,會彈出如下窗口!測試

4.  設置VC++路徑優化

<我把wdk安裝在E盤下
a.  配置可執行文件目錄: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\i3865spa

 

新建C/C++文件 否則無C/C++設置選項命令行

<剛開始咱們建立了一個空的項目因此項目裏沒有c++文件,如今要作的就是在空的項目-源文件-添加一個新建項c++文件>

常規  
目標文件擴展名:.sys          //必選


6.  設置C/C++選項 
常規選項卡 
1 調試信息格式(C7 兼容(/Z7)        //可選 
2 警告等級     (2 級(/W2)          //可選 
3 將警告視爲錯誤  (是(/wx)         //可選 
  
優化選項卡 
優化(禁用/Od)                          //可選 
  
預處理器 
預處理器定義:WIN32=100;_X86_=1;WINVER=0x501;DBG=1         //必選 
  
代碼生成 
       啓用最小從新生成:否                                        //可選    

       基本運行時檢查:默認值                                     //可選 
       運行時庫:多線程調試(/MTd)  或  多線程(/MT)                 //建議選 <本人選擇的是多線程調試(/MTd)> 
       緩衝區安全檢查:否                                            //可選 
  (可避免出現  LINK : error LNK2001:  沒法解析外部符號  __security_cookie) 
高級 
     調用約定  __stdcall(/Gz)                                       //必選 
  
7.  連接器設置 
常規 
     啓用增量連接:否(/INCREMENTAL:NO)                           //建議 選上 
     忽略導入庫:是                                                  // 可選  
     ( 設置爲此值時,必須在附加庫目錄中加: E:\WinDDK\7600.16385.1\lib\win7\i3865  這樣項目就不會依賴 IDE 環境的設 置) 

     若是否  (  設置爲此值時,將依賴  IDE  的環境的相關設置  ) 
  
輸入 
附加依賴項 
ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB       //必選   

//NT式驅動  ntoskrnl.lib    WDM式驅動    wdm.lib 
( HalXXX 函數在Hal.lib, WmiXXX 函數在  wmilib.lib  , NdisXXX函數在  ndis.lib ) 
(  必要時須要增長微軟的標準庫  MSVCRT.LIB MSVCRTD.LIB(調試庫) LIBCMT.LIBIBCMTD.LIB(調試庫) ) 
  (  若是源碼中有  source  文件,那麼該文件的  TARGETLIBS  字段會列出該項 目須要的庫  )

忽略全部默認庫:    是 (/NODEFAULTLIB)                 //必選  

清單文件: 
  啓用用戶帳戶控制(UAC)   否  //必選 

否則會出現  >LINK : fatal error LNK1295: 「/MANIFESTUAC」與「/DRIVER」規範不兼容;連接時不使用「/MANIFESTUAC」   
  
     調試: 
生成調試信息  是(/DEBUG)                                              //可選 
生成映像文件:是(/MAP)                                               //可選 
映像文件名:$(TargetDir)$(TargetName).map                     //可選 
  
    系統(System) 
     子系統:  控制檯(/SUBSYSTEM:CONSOLE)                                //必選 
     堆棧保留大小:4194304                                              //可選 
     堆棧提交大小:  4096                                                //可選 
     驅動程序:    驅動程序(/DRIVER)                                        //必選   
      高級: 
    入口點:DriverEntry                                                    //必選 
    隨機基址:清空           //把框裏的數據刪掉。(yes也不是no也不是就是要一個乾乾淨淨的文本框)   //必選 
    否則會出現  e:\xxx.sys : fatal error LNK1295: 
「/DYNAMICBASE」與「/DRIVER」規範不兼容;連接時不使用「/DYNAMICBASE」


    數據執行保護(DEP):  清空 //把框裏的數據刪掉。(yes也不是no也不是就是要一個乾乾淨淨的文本框) //必選   
     否則會出現  e:\xxx.sys : fatal error LNK1295:        
「/NXCOMPAT:NO」與「/DRIVER」規範不兼容;連接時不使用「/NXCOMPAT:NO」   

 

設置效應和:是(/RELEASE)                              //可選

基址:0x10000                                           //建議選上  
    
 命令行:/SECTION:INIT,D /IGNORE:4078        (建議不要寫進去,會報錯!)                    

最後給出一個超級簡單的代碼來測試一下咱們配置的是否成功??

#include "ntddk.h"

NTSTATUS 
DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath) 

return STATUS_UNSUCCESSFUL; 
}

 

若是沒有報錯那麼恭喜你配置成功了!

相關文章
相關標籤/搜索