码迷,mamicode.com
首页 > Windows程序 > 详细

VS2008+Windows DDK 7的环境配置

时间:2016-01-18 22:28:56      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

?

Mark offers some third party utilities. That‘s good, but I will show a more handy way (IMHO): how to configure and use Visual Studio for compiling drivers.?

Have Fun

  1. Setup Visual Studio 2008.
  2. Setup DDK (WDK).
  3. Add to VS paths DDK include files, libs and bins.
  4. Create new empty "Win32 project" and add source file (i.e.?HelloWorld.c).
  5. Configure project properties (All Configurations):
    1. C\C++ - General - Debug Information Format = Program Database (/Zi)
    2. C\C++ - Preprocessor - Preprocessor Definitions = _X86_ [add also DBG for Debug config]
    3. C\C++ - Code Generation - Enable C++ Exceptions = No
    4. C\C++ - Code Generation - Basic Runtime Checks = Default
    5. C\C++ - Code Generation - Buffer Security Check = No?(/GS-)
    6. C\C++ - Advanced - Calling Convention = __stdcall (/Gz)
    7. C\C++ - Advanced - Compile As = Compile as C Code (/TC) [if you are going to use plain C]
    8. Linker - General - Output File =?$(OutDir)\$(ProjectName).sys
    9. Linker - General - Enable Incremental Linking = Default
    10. Linker - Input - Additional Dependencies =?ntoskrnl.lib hal.lib $(NOINHERIT)?[add needed libs here e.g.?ntoskrnl.lib hal.lib]
    11. Linker - Input - Ignore All Default Libraries = Yes (/NODEFAULTLIB)
    12. Linker - Manifest File - Generate Manifest = No
    13. Linker - System - SubSystem = Native (/SUBSYSTEM:NATIVE)
    14. Linker - System - Driver = Driver (/DRIVER)
    15. Linker - Advanced - Entry Point = DriverEntry
    16. Linker - Advanced - Base Address = 0x10000
    17. Linker - Advanced - Randomized Base Address = Disable (/DYNAMICBASE:NO)

      (应该为默认值)

    18. Linker - Advanced - Data Execution Prevention?(DEP) = Disable (/NXCOMPAT:NO)

    (应该为默认值)

    ?

  6. OK. Done. Now you can test it with simple code, e.g.:

    Hide???Copy Code

    #include "ntddk.h"

    ?

    NTSTATUS

    DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING

    RegistryPath)

    {

    return STATUS_UNSUCCESSFUL;

    }

VS2008+Windows DDK 7的环境配置

标签:

原文地址:http://www.cnblogs.com/time-is-life/p/5140548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!