2016-05-30 133 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錯誤。 –

相關問題