使用Visual Studio 2010进行驱动程序编程的第一个程序中的问题

时间:2011-03-17 13:07:25

标签: c++ visual-studio-2010 visual-c++ kernel device-driver

我开始学习这种类型的编程(驱动程序编程)很短的时间。

我开始使用传统方式 _ >我的意思是我只使用WDK来编译和编译驱动程序,并且使用简单的项目方法正常工作但是当我想开始扩展我的程序或开发一个小程序时我遇到了一些小问题。

所以,我开始在Windows 7中使用VS2010,我真的遇到了很多问题因为我没有背景我怎么能尽可能地使用它。

最后,我达到了一个好点,这一点就是说(如果你想在VS2010中开始驱动程序编程,1-你应该安装WDK 2-安装VS2010 3-输入WDK头文件到VS2010 Dirctories的路径兼容.4-开始创建新项目并继续。

makefile项目

最后,我真的不确定,这是一种正确的方式,我只是初学者。

但我确实喜欢这个,我发现了一个很好的结果

#include "wdm.h"  
NTSTATUS DriverEntry( IN PDRIVER_OBJECT theDriverObject,  IN PUNICODE_STRING theRegistryPath ) 
 {     
     DbgPrint("Hello World!");    
     return STATUS_SUCCESS; 
  }  

我得到了:

1>------ Build started: Project: 1, Configuration: Debug Win32 ------ 1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(37,5): warning MSB8005: The property 'NMakeBuildCommandLine' doesn't exist.  Skipping... ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 

我的问题是:

这是正确的方法吗?我怎么知道这个程序工作正常? 我应该做些什么来让我的程序在内核模式下正常工作吗?

3 个答案:

答案 0 :(得分:1)

永远不要在Visual Studio中构建驱动程序!

构建驱动程序的唯一方法是:打开WDK Build Environment命令提示符,cd到驱动程序项目目录,然后键入“build”。

您只能将Visual Studio用作源代码编辑器,但不要使用它来构建驱动程序!有很多方法可以做到这一点,发布在不同的编程站点,但专业的驱动程序开发人员强烈建议只使用WDK构建。

要打开WDK构建环境,请单击主Windows菜单 - 程序 - Windows驱动程序工具包 - WDK - 构建环境 - 选择目标操作系统 - 根据目标计算机处理器类型选择构建环境。 Checked构建环境意味着Debug,免费构建环境意味着Release。

答案 1 :(得分:0)

查看DDKWizard。它完全解决了您正在处理的问题,并且做得很好。

答案 2 :(得分:0)

您不应该使用Visual Studio的编译器。 WDK编译器可能包含对标准WinSDK或Visual Studio编译器的更改。

另一方面,使用makefile步骤中的构建宏是一种很好的方法,可以利用Visual Studio开发驱动程序,并使用WDK使用的构建工具包构建它。

有一个很好的batch文件,它调用必要的构建环境并将错误输出重定向到Visual Studio输出窗格。

为了澄清,我在visual studio中使用了一个makefile项目,其中添加了所有源文件,在构建时我调用了一个批处理文件,该文件依次使用正确的参数调用ddkbuild。