2009年10月15日 星期四

DDK 連結錯誤

記錄一下今天遇到的錯誤及解決方式
利用VC開發driver的時候,
發生了連結錯誤的訊息,
Driver.obj : error LNK2001: unresolved external symbol __imp_@KfReleaseSpinLock@8
Driver.obj : error LNK2001: unresolved external symbol __imp_@KfAcquireSpinLock@4
Driver.obj : error LNK2001: unresolved external symbol __imp__KeGetCurrentIrql@0

主要是使用了KeReleaseSpinLock,KeAcquireSpinLock等等的function,
在link的時候因為找不到lib而產生錯誤,

解決方式:在 Project Settings->Link->object/library modules加入

NT式: 加入hal.lib
WDM: 加入wdm.lib

結論:
用VC開發Driver的時候,
如果是NT式的,一開始就先加入hal.libntoskrnl.lib
如果是WDM式的,就加入wdm.lib

沒有留言 :