chens
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2003-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2148回复:4

如何修改Windriver Kernel Plugin的例子中的kptest.mak文件才能生成kptest.sys文件?

楼主#
更多 发布于:2003-01-17 16:23
DRV_NAME  = kptest
BASEDIR=D:\\NTDDK
!ifdef WIN95
BINDIR     = WIN95
DRV_NM     = $(DRV_NAME).vxd
CVXDFLAGS  = -Zdp -Gs -c -DIS_32 -Zl -DDEBLEVEL=1 -DDEBUG -DWIN95  

-D__KERNEL__
AFLAGS     = -coff -DBLD_COFF -DIS_32 -W2 -Zd -c -Cx -DMASM6

-DDEBLEVEL=1 -DDEBUG
INCDIRS    =
!else
!ifndef BASEDIR
!ERROR set BASEDIR enviroment variable to the of NTDDK path. For

example: SET BASEDIR=C:\\NTDDK
!endif
BINDIR     = WINNT
DRV_NM     = $(DRV_NAME).sys
CVXDFLAGS  = -nologo -DWINVER=0x030A -D_X86_=1 -Di386=1 -DWINNT  

-D__KERNEL__ -DSTD_CALL -DCONDITION_HANDLING=1 -DWIN32_LEAN_AND_MEAN=1

-DNT_UP=1  -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DNT_UP=1 -Dtry=__try

-Dleave=__leave -Dexcept=__except -Dfinally=__finally

-D_CRTAPI1=__cdecl -D_CRTAPI2=__cdecl  -Ditoa=_itoa  -Dstrcmpi=_strcmpi

 -Dstricmp=_stricmp  -Dwcsicmp=_wcsicmp  -Dwcsnicmp=_wcsnicmp  -DDBG=0

-DDEVL=1 -DFPO=1 -D_IDWBUILD /c /Zel /Zp8 /Gy /W3 /Gz /G4 /Oxs /Gf /Oy
INCDIRS    = -I. -I$(BASEDIR)\\inc -I$(BASEDIR)\\inc\\ddk

-I$(BASEDIR)\\inc\\crt
!endif
LIBDIR     = c:\\Windriver\\kerplug\\lib

OBJECTS= $(BINDIR)\\kptest.obj

all: direxist $(BINDIR)\\$(DRV_NM)

direxist:
        if not exist $(BINDIR)\\nul    md $(BINDIR)

$(BINDIR)\\kptest.obj: kptest.c
        cl $(CVXDFLAGS) $(INCDIRS) -Fo$@ %s

!ifndef WIN95
$(BINDIR)\\kptest.res: kptest.rc
    rc -l 409  -r -fo $@ -D_X86_=1 -Di386=1  -DSTD_CALL

-DCONDITION_HANDLING=1 -DWIN32_LEAN_AND_MEAN=1 -DNT_UP=1  -DNT_INST=0

-DWIN32=100 -D_NT1X_=100 -DNT_UP=1 -Dtry=__try -Dleave=__leave

-Dexcept=__except -Dfinally=__finally -D_CRTAPI1=__cdecl

-D_CRTAPI2=__cdecl  -Ditoa=_itoa  -Dstrcmpi=_strcmpi  

-Dstricmp=_stricmp  -Dwcsicmp=_wcsicmp  -Dwcsnicmp=_wcsnicmp  -DDBG=0

-DDEVL=1 -DFPO=1 -D_IDWBUILD $(INCDIRS) %s
!endif

!ifdef WIN95
$(BINDIR)\\$(DRV_NM): $(OBJECTS) kptest.def
        echo >NUL @<<$(DRV_NAME).crf
-MACHINE:i386 -DEBUG:NONE -PDB:NONE
-DEF:kptest.def -OUT:$@ -MAP:$(BINDIR)\\$(DRV_NAME).map
-VXD $(OBJECTS) $(LIBDIR)\\kp_95w.obj $(LIBDIR)\\kp_95.lib
-IGNORE:4039 -IGNORE:4078
<<
        link @$(DRV_NAME).crf
        cd $(BINDIR)
        mapsym $(DRV_NAME)
        cd ..
!else

$(BINDIR)\\$(DRV_NM): $(OBJECTS) $(BINDIR)\\kptest.res
        echo >NUL @<<$(DRV_NAME).crf
-MERGE:_PAGE=PAGE
-MERGE:_TEXT=.text
-SECTION:INIT,d
-OPT:REF
-RELEASE
-INCREMENTAL:NO
-FULLBUILD
-FORCE:MULTIPLE
-IGNORE:4001 -IGNORE:4037 -IGNORE:4039 -IGNORE:4065 -IGNORE:4070

-IGNORE:4078 -IGNORE:4087 -IGNORE:4089
-PDB:NONE
-debug:notmapped,FULL
-debugtype:coff
-version:3.51
-osversion:3.51
-MERGE:.rdata=.text
-align:0x20
-subsystem:native,3.51
-machine:i386
-base:0x10000
-entry:DriverEntry@8
-driver
$(LIBDIR)\\kp_nt.lib
$(BASEDIR)\\libfre\\i386\\ntoskrnl.lib
$(BINDIR)\\kptest.res
$(BINDIR)\\kptest.obj
-out:$@
<<
        link @$(DRV_NAME).crf
!endif

clean:
        -@del /Q $(BINDIR)\\*
执行nmake /f kptest.mak 出错,我该怎么改,请大虾指示。
xinlingzhu
驱动牛犊
驱动牛犊
  • 注册日期2003-04-11
  • 最后登录2003-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-12 20:44
你的问题解决了吗?
我也遇到了kernel plugin的问题
能给看一下吗
我在user mode下,已获得中断,但精度不够,所以想用KERPLUG方式,
但我在编译、链接windriver\\kerplug\\kptest时,总出错:
Compiling...
kptest.c
C:\\WinDriver\\kerplug\\kptest\\kermode\\kptest.c(64) : warning C4013: \'memcpy\' undefined; assuming extern returning int
kptest.obj - 0 error(s), 1 warning(s)

Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/kptest.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

kptest.exe - 2 error(s), 0 warning(s)
而且我按wizard进行,generate code-->select driver option时选:kenerl plugin
上面提示按住2000DDK,我安装了2000DDK,但还是编译不了呀,
lw535
驱动牛犊
驱动牛犊
  • 注册日期2002-10-13
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-23 16:59
我要是斑竹就置顶,直到有人说出怎么改写为止。
或者哪位大虾说一下,要看什么书才能把那一段长长的命令看懂。
终于找到组织了......
jokeshe
驱动牛犊
驱动牛犊
  • 注册日期2001-06-06
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-06-03 23:27
我这里可以编译OK。不知道你们哪里为什么出问题哦!
不过要安装DDK,并设置DDK的路径才行。
CPLD来了
ilotus
驱动牛犊
驱动牛犊
  • 注册日期2002-10-11
  • 最后登录2003-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-04 21:17
好像不用修改顶上的代码吧?编译的时候回自己查询当前的Windows系统,若是Win95/98就生成Vxd,若是NT/2000就生成.sys文件。第二位编译Kptest.c文件时,在IDE中只能修改语法错误,致命的错误不用管,因为没有Main() 这个文件是不能编译成可执行文件的。修正错误之后再执行本目录中的compile.bat生成Vxd。编译VXd成功的前提是DDk安装并且路径设置正确
游客

返回顶部