2016-05-30 135 views
2

我是新的Windows驱动程序开发和微过滤器,我试图使用命令行工具构建nullFilter示例。 所以我加#pragma comment(lib, "FltMgr.lib")到.c文件,并成功发行了下面的命令:链接:错误LNK2001:无法解析的外部符号NtProcessStartup

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; 

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

回答

5

NtProcessStartup函数是驱动程序开发什么'主'是常规的C程序。换句话说,它是您需要为自己提供的程序输入功能。请参阅文章here以了解此功能的介绍和说明。您可以通过使用-entry链接器选项来取代启动函数的名称。设置'-entry:DriverEntry'是驱动程序开发的常用操作。

+0

加入'/ entry:DriverEntry'工作。谢谢! – user1973167

+0

嗨。我正面临着与上述类似的问题。我的问题在下面的链接中详细解释:http://stackoverflow.com/questions/37584201/winrt-library-not-working-in-release-mode 根据你的建议,我尝试添加/条目:我的项目的链接器菜单中的DriverEntry。但现在我得到一个错误作为错误LNK2001:无法解析的外部符号_DriverEntry 你能告诉我哪里出错了吗? – jain

+0

请参阅我对您提供的链接中问题的回答。对于非设备驱动程序应用程序,您不应该得到NtProcessStartup错误。 –

相关问题