【问题标题】:Problem in first program in driver programming using Visual Studio 2010使用 Visual Studio 2010 进行驱动程序编程的第一个程序中的问题
【发布时间】:2011-07-17 09:36:44
【问题描述】:

我最近开始学习这种类型的编程(驱动程序编程)。

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

所以,我开始在 windows 7 中使用 VS2010,我确实遇到了很多问题,因为我没有背景,如何才能尽可能地使用它。

最后,我说得很好,这一点是说(如果你想在 VS2010 中开始驱动程序编程,1- 你应该安装 WDK 2- 安装 VS2010 3- 将 WDK 头目录的路径输入到 VS2010 目录中要兼容。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 ========== 

我的问题是:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这不是真的,可以在 Visual Studio 中构建驱动程序,但艰巨的任务是正确设置项目文件
    • 感谢您的回复,但您能告诉我为什么不能使用 Visual Studio 创建驱动程序吗?我可以使用其他开发环境来代替直接使用 WDK 吗?
    • 亲爱的ConfusedSushi,你能告诉我,我怎样才能以正确的方式设置项目文件?详细说说是否可以。非常感谢
    • 我使用 Visual Studio makefile 项目,它调用在构建命令行中调用的 SDK 构建。即使这样,当 WDK 编译器工作时,驱动程序开发人员也不建议这样做,因为可能会发生环境变量冲突。您可以找到直接从 Visual Studio 执行此操作的方法(我不会帮助您...),但需要驱动程序未定义的行为。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-08-06
        • 2011-12-25
        • 2022-09-18
        • 1970-01-01
        • 2016-08-15
        • 1970-01-01
        • 2014-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多