Introduction
As it is known, Microsoft officially doesn't support integration of
DDK with Visual Studio (any version). So we can use the Visual Studio
editor (or any other text editor) for developing the source codes of a
driver, but for compiling we should use the DDK build utility. Of course
it is not very convenient because we must always switch between editor
and console window, but the worst thing is that the developer must spend
a lot of time to find lines with errors in the editor.
Background
There are several ways to compile drivers with Visual Studio. You can
find most of them in the nice Mark Roddy article, Windows Driver Build
Methods and Tools
.
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
-
Setup Visual Studio 2008.
-
Setup DDK (WDK).
-
Add to VS paths DDK include files, libs and bins.
-
Create new empty "Win32 project" and add source file (i.e. HelloWorld.c
).
-
Configure project properties (All Configurations):
- C\C++ - General - Debug Information Format = Program Database (/Zi
)
- C\C++ - Preprocessor - Preprocessor Definitions = _X86_ [add also
DBG for Debug config]
- C\C++ - Code Generation - Enable C++ Exceptions = No
- C\C++ - Code Generation - Basic Runtime Checks = Default
- C\C++ - Code Generation - Buffer Security Check = No (/GS
-)
- C\C++ - Advanced - Calling Convention = __stdcall (/Gz
)
- C\C++ - Advanced - Compile As = Compile as C Code (/TC) [if you are
going to use plain C]
- Linker - General - Output File = $(OutDir)\$(ProjectName).sys
- Linker - General - Enable Incremental Linking = Default
- Linker - Input - Additional Dependencies = ntoskrnl.lib hal.lib
$(NOINHERIT)
[add needed libs here e.g. ntoskrnl.lib hal.lib
]
- Linker - Input - Ignore All Default Libraries = Yes (/NODEFAULTLIB
)
- Linker - Manifest File - Generate Manifest = No
- Linker - System - SubSystem = Native (/SUBSYSTEM:NATIVE
)
- Linker - System - Driver = Driver (/DRIVER
)
- Linker - Advanced - Entry Point = DriverEntry
- Linker - Advanced - Base Address = 0x10000
- Linker - Advanced - Randomized Base Address = Disable (/DYNAMICBASE:NO
)
- Linker - Advanced - Data Execution Prevention (DEP) = Disable (/NXCOMPAT:NO
)
-
OK. Done. Now you can test it with simple code, e.g.:
-
#include "ntddk.h"
NTSTATUS
DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING
RegistryPath)
{
return STATUS_UNSUCCESSFUL;
}
About the Author
Andrey
Sergienko
- From: http://www.codeproject.com/KB/winsdk/vs2008_and_drivers.aspx
找到一个中文版的:
1、现在要让Visual Studio 2008
能够编译驱动
程序,步骤如下:
(1) 打开VS2008
,单
击工具
——>选项
;在选项的列表栏选择项目和解决方案
——>C++目录
;在左侧的显示以下内容的项目
中
先选择包含文件
,并在下面新建D:\WinDDK
\6001.18002\inc\api和D:\WinDDK\6001.18002\inc\ddk两个路径(注意:D:\请替换成你WDK的安装目录
);然后再在显示以下内容的项目
中选择库文件,在下面添加D:\WinDDK\6001.18002\lib
\wxp\i386(注意:D:\请替换成你WDK的安装目录
)。
(2)
接下来是每次创建项目都需要做的。先创建一个项目,在项目生成后点击项
目
——>(项目名)属性
,点击配置管理器
,并在配置管理器
中
新建一个名为Free的配置(新建时从Release复制配置);之后在属性页的右侧选择配置属性
——>C/C++
——>高级
,调用约定改为
__stdcall(/Gz);再在属性页的右侧选择配置属性
——>链接器
,在常规
中把输出文件
改
为$(OutDir)\$(ProjectName).sys,在清单
文件
中把启用用户账户控制(UAC)
改为
否(这就是VS2008
中新增加的特性),在优化
中将链接时间代码生成
改
为默认值,在高级
中将随机地址
改为默认值(这也是VS2008
中
新增加的特性),最后在命令行
中输入:
ntoskrnl.lib
/base:"0x10000"
/entry:"DriverEntry"
/subsystem:native
/nologo
/stack:0x400000,0x1000
/incremental:no
/nodefaultlib
原文来自: http://flyxxtt.blogbus.com/logs/42680411.html
分享到:
相关推荐
为了成功搭建基于 Visual C++ 6.0 (简称 VC6)、Windows Driver Kit (简称 WDK) 和 DriverStudio 的 Windows 驱动程序开发环境,需要以下软件及特定版本: 1. **VC6 英文版**:这是一个广泛可用且被广泛使用的编程...
本篇文章将详细介绍如何快速地在Visual Studio 2008与Windows Driver Development Kit (WDK)环境下搭建驱动程序开发环境。通过遵循本文提供的步骤,用户可以在最短的时间内完成环境配置,并进行简单的驱动程序编写与...
这个压缩包文件的内容似乎是一个关于在Windows 10版本21H2、Visual Studio 2022以及Windows 11版本22H2环境下开发驱动程序的示例项目,名为"MyDriver1"。 首先,我们来详细了解下这些关键组件: 1. **Windows 10 ...
2. `Driver26.vcxproj`:这是Visual Studio的项目文件,其中包含了关于项目配置、依赖项、编译选项等信息,是构建驱动程序的基础。 3. `__TemplateIcon.ico`:这可能是一个图标文件,用于在VS2013中代表驱动开发模板...
- **编译环境**:使用Visual Studio 2008和WDK配置驱动程序的开发环境。 - **编译步骤**:包括项目创建、依赖库配置、编译参数设置等。 #### 45. DebugPrint格式说明符 - **格式说明符**:用于控制DbgPrint输出的...
VS2008+WDK(Windows Driver Kit)驱动开发环境配置是开发Windows系统驱动程序的基础步骤,这对于软件工程师来说至关重要。以下是一个详尽的配置指南: 1. **安装Visual Studio 2008**: 首先,你需要在你的计算机上...
本篇将详细讲解如何搭建适用于Visual Studio 2010 (VS2010) 和 Windows Driver Kit (WDK) 7.1 的开发环境,以及如何在该环境中编译32位和64位驱动程序。 首先,让我们了解VS2010和WDK7.1的基础知识。Visual Studio ...
编译驱动程序的常用方法有两种,一种是通过WDK/DDK的COMMAND环境进行编译,另外一种是通过...通过Visual Studio编译驱动程序需要对其进行相关配置,本文以VS2008和WDK7600为例,讲解了实现编译驱动程序的配置方法。
在Visual Studio 2008中编译驱动程序,开发者需要安装适当的WDK版本,因为VS2008并不直接支持驱动开发。通过WDK的集成,VS2008可以创建驱动项目,提供编辑、调试和构建驱动程序的功能。设置好环境后,开发者可以通过...
### WIN7 VS2010 WDK7.60 配置驱动开发环境知识点详解 #### 一、概述 在Windows环境下进行驱动程序开发时,通常需要借助Microsoft提供的工具链来构建开发环境。本篇文章主要介绍了如何在Windows 7操作系统上使用...
1. **Visual Studio 集成**:WDK7600与Visual Studio 2008紧密集成,允许开发者在熟悉的IDE环境中编写、编译和调试驱动程序。通过WDK提供的项目模板,可以快速创建不同类型的驱动项目,如Kernel-Mode Drivers(内核...
通过以上步骤,你已经成功地配置了Visual Studio 2008和DDK的开发环境,可以开始编写和编译驱动程序了。驱动开发是一个复杂的过程,涉及到操作系统内核级别的编程,需要对Windows内核有深入的理解。不断学习和实践,...
【标题】"VS2013+WDK10+pci+driver.rar"是一个与开发PCI设备驱动程序相关的压缩包,它包含了一套基于Visual Studio 2013和Windows Driver Kit (WDK) 10的解决方案。该驱动程序采用Windows Driver Frameworks (WDF)的...
在Windows系统开发中,驱动程序的编写是一项技术性极强的工作。...随着技术的发展,现在更多的人转向使用Visual Studio更新的版本和WDK(Windows Driver Kit)进行驱动开发,但VC6+DDK的经典组合仍然有其独特的价值。
本文旨在详细介绍如何在Visual Studio 2010环境下利用Windows Driver Kit (WDK) 7.0来搭建一个完整的驱动开发环境。对于希望从事驱动开发工作的开发者来说,这是一份非常实用的操作指南。 #### 一、准备工作 **1. ...
"VS2008 PRO 、WDK 和DDKWizard搭建Vista驱动开发环境"这一主题,涉及到的是利用Visual Studio 2008 Professional作为开发工具,配合Windows Driver Kit提供的开发资源,以及DDKWizard的便利性,来构建一个能够创建...
微软通过WDK10为开发者提供了全面的工具集,包括Visual Studio 2015和Debugging Tools for Windows,这使得驱动开发、编译、打包、测试和调试工作更加高效。WDK10集成的环境不仅能够帮助开发者进行常规的开发任务,...
接下来,我们需要安装Visual Studio和对应版本的.NET Framework,因为驱动程序的编译和测试需要这些开发工具。需要注意的是,安装.NET Framework时要安装四个特定的版本,这是为了确保开发环境的稳定性和兼容性。 ...
本文将深入探讨如何配置驱动开发环境,特别是基于WDK 7.600版本的两种方法。 **一、WDK 7.600简介** WDK 7.600是微软为开发Windows 7及更高版本驱动程序提供的开发工具。它包含了编译器、链接器、调试器以及头文件...
VS2010(Visual Studio 2010)是Microsoft推出的一款强大的集成开发环境,支持包括驱动在内的多种类型软件的开发。 标题“驱动开发模版VS2010修改好的配置可直改接编译驱动”表明这是一个专门用于驱动开发的项目...