链接:错误LNK2001:未解析的外部符号NtProcessStartup

时间:2016-05-30 05:39:59

标签: c windows minifilter wdm

我是Windows驱动程序开发和微过滤器的新手,我正在尝试使用命令行工具构建nullFilter示例。 所以我将#pragma comment(lib, "FltMgr.lib")添加到.c文件中并成功发出以下命令:

cl.exe /nologo /Fo../../bin\filter.obj /c filter.c /D _AMD64_
rc.exe /nologo /Fo../../bin\filter.res filter.rc

但是,当我尝试创建sys文件时:

link.exe /nologo /DRIVER:WDM /out:../../bin\filter.sys ../../bin\filter.obj ../../bin\filter.res
LINK : error LNK2001: unresolved external symbol NtProcessStartup
../../bin\filter.sys : fatal error LNK1120: 1 unresolved externals

我正在使用VS2012 Express和WDM8。我的LIB环境变量是:

C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64;C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\km\x64;

我做错了什么?我错过了什么吗?

1 个答案:

答案 0 :(得分:5)

NtProcessStartup函数是驱动程序开发常规C程序的“主要”。换句话说,它是您需要自己提供的程序输入功能。有关此功能的介绍和说明,请参阅文章here。您可以使用-entry链接器选项来否决启动函数的名称。设置'-entry:DriverEntry'是驱动程序开发的常见做法。

相关问题