VS2003 驅動編程環境配置

 本機環境:winXP SP3 + DDk3790.1830安全

下載:cookie

DDK3790.1830多線程

http://pan.baidu.com/s/1jG9f9Oi函數

http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/1830_usa_ddk.iso 工具


1、新建一個空的 win32控制檯程序測試

 1、選(文件→新建→項目→Visual C++項目→win32win32控制檯項目)建立一個優化





填寫上名稱event而後按肯定
在彈出的win32應用程序嚮導裏 選應用程序設置 →附加選項 勾選空項目→完成。


spa

 

二   選項目菜單→添加現有項→添加全部驅動相關的*.h,*.c,*.cpp,*.rc之類的文件。.net

3、 選工具(T)→選項(O)....→項目→VC++目錄→命令行

  1可執行文件目錄中添加:(注意順序)

    D:\WINDDK\3790.1830\BIN\X86

 


  2、在包含文件目錄添加以下路徑(注意順序) (須要安裝DDK)

    D:\WINDDK\3790.1830\inc\wxp
    D:\WINDDK\3790.1830\inc\crt 
    D:\WINDDK\3790.1830\inc\ddk\wxp
 


  3庫文件目錄中添加:(注意順序)

    D:\WINDDK\3790.1830\LIB\WXP\I386

 

4、 項目event屬性設置 

新建項目配置 check //必選

()C/C++屬性設置

    常規選項卡

        調試信息格式:C7 兼容(/Z7)

        警告等級:2 級(/W2)

        將警告視爲錯誤:是(/WX)


   優化選項卡

      優化:禁用(/Od) 

  預處理器

      預處理器定義:WIN32=100;_X86_=1;WINVER=0x501;DBG=1 

  代碼生成

     啓用最小從新生成:否  

        基本運行時檢查:默認值

        運行時庫:多線程調試(/MTd) 或 多線程(/MT) 

        緩衝區安全檢查:否 (可避免出現 LINK : error LNK2001: 沒法解析外部符號 __security_cookie)

  高級

    調用約定:__stdcall(/Gz) 

      編譯爲:默認


(二)連接器

  常規:

     輸出文件:$(OutDir)\$(ProjectName).sys 

     啓用增量連接:否(/INCREMENTAL:NO)

      忽略導入庫:是  ( 設置爲此值時,必須在附加庫目錄中加:D:\WINDDK\3790.1830\lib\wxp\i386 ,這樣項目就不會依賴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.libWmiXXX函數在 wmilib.lib NdisXXX函數在 ndis.lib )
            ( 必要時須要增長微軟的標準庫 MSVCRT.LIB MSVCRTD.LIB(調試庫) LIBCMT.LIBIBCMTD.LIB(調試庫) )
            
( 若是源碼中有 source 文件,那麼該文件的 TARGETLIBS 字段會列出該項目須要的庫 )

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

    

    調試:

    生成調試信息:是(/DEBUG) 

       生成映像文件:是(/MAP)

       映像文件名:$(TargetDir)$(TargetName).map

    系統(System)

     子系統控制檯(/SUBSYSTEM:CONSOLE)

        堆棧保留大小:4194304

        堆棧提交大小:4096

    高級:

        入口點:DriverEntry

        設置校驗和:是(/RELEASE)

        基址:0x10000

  命令行」->附加選項:

     附加選項:

                /DRIVER

                /subsystem:native

                /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221

                /SECTION:INIT,d


驅動測試:

測試方法->把event.c文件附加至工程->編譯

//event.c
#include <ntddk.h>
VOID DriverUnload(PDRIVER_OBJECT pdrvier)
{
	DbgPrint("驅動被卸載了!");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING path_reg)
{
	DbgPrint("驅動被加載了!");
	pDriverObject->DriverUnload=DriverUnload;
	return 1;
}

(完)

 

 

 編者:richardx(http://my.oschina.net/richardx)

相關文章
相關標籤/搜索