如何创建一个基本的,空的WDM驱动程序?

时间:2015-02-14 21:01:31

标签: visual-studio visual-studio-2013 driver wdm

我试图说服Visual Studio 2013构建驱动程序。但是从未见过Visual Studio 2013成功构建驱动程序,我不知道如何解决问题。

所以现在是时候回到起点了。删除整个解决方案并开始逐个添加,直到无法构建。除了我无法得到一个空的解决方案来构建。

让我们创建一个new empty WDM driver project

在Visual Studio 2013中,我选择:

  • 档案项目
  • 模板 Visual C ++ Windows驱动程序 WDM
  • 清空WDM驱动程序

我现在有一个新的,空的驱动程序解决方案:

enter image description here

除非我尝试构建它,否则它会失败:

  

SIGNTASK:SignTool错误:找不到文件:D:\ Develop \ TestDriver \ MyDriver3 \ Win7Debug \ MyDriver3.sys

现在该错误并非意料之外,解决方案中甚至没有代码构建到.sys文件中!

所以我会添加一些代码

现在让我们通过添加一个空的WDM驱动程序文件来创建一个空的WDM驱动程序项目:

由source.c

#include <wdm.h>

NTSTATUS DriverEntry(PDRIVER_OBJECT object, PUNICODE_STRING registryPath)
{
   return STATUS_SUCCESS;
}

现在这也失败了,但是这次它失败的时候出现与上次完全相同的错误信息:

  

SIGNTASK:SignTool错误:找不到文件:D:\ Develop \ TestDriver \ MyDriver3 \ Win7Debug \ MyDriver3.sys

哪个有意义,没有MyDriver3.sys个文件。不在那个文件夹中,不在任何地方。这里没有.sys个文件,那里没有.sys个文件。任何地方都没有.sys个文件。

如何创建基本的空WDM驱动程序?

所以这给我留下了一个问题:

  

如何创建基本的空WDM驱动程序?

我担心即使Visual Studio确实创建了.sys文件,它也只会fail on the next error。所以我喜欢的是一个空WDM解决方案的典型例子 - 构建。

奖金阅读

2 个答案:

答案 0 :(得分:0)

我没有使用包构建,但仍然需要: 1)转到Solutions Explorer并选择Configuration Manager 2)在Configuration Manager中,选择Active Solution Configuration 在我的例子中,它是Active Solution Configuration:Win8.1 Debug                   Active Solution Platform:x64 这就是全部 - 只需按下构建

答案 1 :(得分:0)

听起来像inf文件中缺少某些指令,这些指令描述了要安装的驱动程序服务的名称,或者项目设置与您要实现的目标不正确。

如果您不想要驱动程序服务(在内核模式驱动程序中通常是.sys文件),则需要将Configuration Type的项目设置从Driver更改为Utility并确保删除.inf文件中的服务安装指令。

这很短,但是项目配置中可能还有其他设置也不正确。