我试图说服Visual Studio 2013构建一个驱动程序 . 但从未见过Visual Studio 2013成功构建驱动程序,我不知道如何解决问题 .
所以是时候回到起点了 . 删除整个解决方案并开始逐个添加,直到无法构建 . 除了我无法得到一个空的解决方案来构建 .
让我们创建一个新的空WDM驱动程序项目
在Visual Studio 2013中,我选择:
-
File , New , Project
-
Templates , Visual C++ , Windows Drivers , WDM
-
Empty WDM Driver
我现在有一个新的,空的驱动程序解决方案:
除非我尝试构建它,否则它会失败:
SIGNTASK:SignTool错误:找不到文件:D:\ Develop \ TestDriver \ MyDriver3 \ Win7Debug \ MyDriver3.sys
现在该错误在构建到 .sys
文件的解决方案中甚至没有't unexpected, there isn'!
所以我会添加一些代码
现在让我们通过添加一个空的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 回答
我没有使用包构建,但您仍然需要:1)转到Solutions Explorer并选择Configuration Manager 2)在Configuration Manager中,选择Active Solution Configuration在我的例子中,它是Active Solution Configuration:Win8.1 Debug Active Solution Platform: x64这就是全部 - 只需按下构建
听起来你错过了
inf
文件中的一些指令,这些指令描述了你想要安装的驱动程序服务的名称,或者你的项目设置对于你想要实现的目标是不正确的 .如果您不想要驱动程序服务(通常是内核模式驱动程序中的.sys文件),则需要将
Configuration Type
的项目设置从Driver
更改为Utility
,并确保删除.inf文件中的服务安装指令 .这是它的缺点,但项目配置中可能还有其他设置也是不正确的 .