我是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;
我做错了什么?我错过了什么吗?
答案 0 :(得分:5)
NtProcessStartup函数是驱动程序开发常规C程序的“主要”。换句话说,它是您需要自己提供的程序输入功能。有关此功能的介绍和说明,请参阅文章here。您可以使用-entry链接器选项来否决启动函数的名称。设置'-entry:DriverEntry'是驱动程序开发的常见做法。