Hi,
I cannot link my driver. I always get the same errors and I don’t understand
why. Any help would be welcome.
my “sources” file is:
TARGETNAME=etherbox
TARGETPATH=obj
TARGETTYPE=DRIVER
TARGETLIBS = \
$(DDK_LIB_PATH)\ntoskrnl.lib \
$(DDK_LIB_PATH)\hal.lib \
$(DDK_LIB_PATH)\tdi.lib \
$(DDK_LIB_PATH)\kernel32.lib
SOURCES=\
ebx00000.c \
ebx10000.c \
ebx20000.c \
ebxlib01.c \
ebxlib02.c \
ebxlib03.c \
ebxlib04.c \
ebxlib05.c \
ebxlib06.c \
ebxlib07.c \
ebxlib08.c \
ebxlib09.c \
ebx_log.mc
and the errors I get are (an excerpt only, there are too many) :
Linking j:\developpement\driversw2k\etherbox directory ********************
‘nmake.exe /c BUILDMSG=Stop. -i LINKONLY=1 NOPASS0=1 NTTEST= UMTEST= 386=1’
link -out:objchk_w2K_x86\i386\etherbox.sys -machine:ix86
@E:\FICHIE~1\nma01500.
Microsoft (R) Incremental Linker Version 7.00.9210
Copyright (C) Microsoft Corporation. All rights reserved.
-MERGE:_PAGE=PAGE
-MERGE:_TEXT=.text
-SECTION:INIT,d
-OPT:REF
-OPT:ICF
-IGNORE:4010,4037,4039,4065,4070,4078,4087,4089,4198,4221
-INCREMENTAL:NO
-FULLBUILD
/release
-NODEFAULTLIB
/WX
-debug:FULL
-debugtype:cv
-version:5.1
-osversion:5.1
/opt:nowin98
-STACK:0x40000,0x1000
-driver
-base:0x10000
-align:0x80
-subsystem:native,5.00
-entry:DriverEntry@8
-out:objchk_w2K_x86\i386\etherbox.sys
objchk_w2K_x86\i386\ebx00000.obj
objchk_w2K_x86\i386\ebx10000.obj
objchk_w2K_x86\i386\ebx20000.obj
objchk_w2K_x86\i386\ebxlib01.obj
objchk_w2K_x86\i386\ebxlib02.obj
objchk_w2K_x86\i386\ebxlib03.obj
objchk_w2K_x86\i386\ebxlib04.obj
objchk_w2K_x86\i386\ebxlib05.obj
objchk_w2K_x86\i386\ebxlib06.obj
objchk_w2K_x86\i386\ebxlib07.obj
objchk_w2K_x86\i386\ebxlib08.obj
objchk_w2K_x86\i386\ebxlib09.obj
G:\WINDDK\2600~1.110\lib\w2K\i386\ntoskrnl.lib
G:\WINDDK\2600~1.110\lib\w2K\i386\hal.lib
G:\WINDDK\2600~1.110\lib\w2K\i386\wmilib.lib
G:\WINDDK\2600~1.110\lib\w2K\i386\ntoskrnl.lib
G:\WINDDK\2600~1.110\lib\w2K\i386\hal.lib
G:\WINDDK\2600~1.110\lib\w2K\i386\tdi.lib
G:\WINDDK\2600~1.110\lib\w2K\i386\kernel32.lib
G:\WINDDK\2600~1.110\lib\w2K\i386\sehupd.lib
LINK : error LNK2001: unresolved external symbol _DriverEntry@8
ebx00000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) long __stdcall KeDelayExecutionThread(char,unsigned
char,union _LARGE_INTEGER *)”
(_imp?KeDelayExecutionThread@@YGJDEPAT_LARGE_INTEGER@@@Z) referenced in
function “long __stdcall DriverEntry(struct _DRIVER_OBJECT *,struct
_UNICODE_STRING *)”
(?DriverEntry@@YGJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)
ebx10000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) long __stdcall KeDelayExecutionThread(char,unsigned
char,union _LARGE_INTEGER *)”
(_imp?KeDelayExecutionThread@@YGJDEPAT_LARGE_INTEGER@@@Z) referenced in
function “void __stdcall WatchThread(void *)” (?WatchThread@@YGXPAX@Z)
ebx20000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) long __stdcall KeDelayExecutionThread(char,unsigned
char,union _LARGE_INTEGER *)”
(_imp?KeDelayExecutionThread@@YGJDEPAT_LARGE_INTEGER@@@Z) referenced in
function “void __stdcall SendThread(void *)” (?SendThread@@YGXPAX@Z)
ebxlib08.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) long __stdcall KeDelayExecutionThread(char,unsigned
char,union _LARGE_INTEGER *)”
(_imp?KeDelayExecutionThread@@YGJDEPAT_LARGE_INTEGER@@@Z) referenced in
function “void __stdcall ReadIntervalTimerRoutine(struct _KDPC *,void *,void
*,void *)” (?ReadIntervalTimerRoutine@@YGXPAU_KDPC@@PAX11@Z)
ebx00000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) void __stdcall IoDeleteDevice(struct _DEVICE_OBJECT
*)” (_imp?IoDeleteDevice@@YGXPAU_DEVICE_OBJECT@@@Z) referenced in function
“long __stdcall DriverEntry(struct _DRIVER_OBJECT *,struct _UNICODE_STRING
*)” (?DriverEntry@@YGJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)
ebx00000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) long __stdcall IoDeleteSymbolicLink(struct
_UNICODE_STRING *)” (_imp?IoDeleteSymbolicLink@@YGJPAU_UNICODE_STRING@@@Z)
referenced in function “long __stdcall DriverEntry(struct _DRIVER_OBJECT
*,struct _UNICODE_STRING *)”
(?DriverEntry@@YGJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)
ebx00000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) long __stdcall PsCreateSystemThread(void * *,unsigned
long,struct _OBJECT_ATTRIBUTES *,void *,struct _CLIENT_ID *,void
(__stdcall*)(void *),void *)”
(imp?PsCreateSystemThread@@YGJPAPAXKPAU_OBJECT_ATTRIBUTES@@PAXPAU_CLIENT
ID@@P6GX2@Z2@Z) referenced in function “long __stdcall DriverEntry(struct
_DRIVER_OBJECT *,struct _UNICODE_STRING *)”
(?DriverEntry@@YGJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)
ebx00000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) void __stdcall KeInitializeDpc(struct _KDPC *,void
(__stdcall*)(struct _KDPC *,void *,void *,void *),void *)”
(_imp?KeInitializeDpc@@YGXPAU_KDPC@@P6GX0PAX11@Z1@Z) referenced in
function “long __stdcall DriverEntry(struct _DRIVER_OBJECT *,struct
_UNICODE_STRING *)”
(?DriverEntry@@YGJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)
ebx00000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) void __stdcall KeInitializeTimerEx(struct _KTIMER
*,enum _TIMER_TYPE)”
(_imp?KeInitializeTimerEx@@YGXPAU_KTIMER@@W4_TIMER_TYPE@@@Z) referenced in
function “long __stdcall DriverEntry(struct _DRIVER_OBJECT *,struct
_UNICODE_STRING *)”
(?DriverEntry@@YGJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)
ebx00000.obj : error LNK2019: unresolved external symbol
“__declspec(dllimport) void __stdcall KeInitializeMutex(struct _KMUTANT
*,unsigned long)” (_imp?KeInitializeMutex@@YGXPAU_KMUTANT@@K@Z) referenced
in function “long __stdcall DriverEntry(struct _DRIVER_OBJECT *,struct
_UNICODE_STRING *)”
(?DriverEntry@@YGJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)