我看了你的程序了,解决办法(在windows xp sp2+ddk xp上编译通过)如下: 在sources文件中 *去掉 DRIVERTYPE=WDM 这一行 **另外把 TARGETLIBS 要设置对.我把它改成了使用环境变量的,这样比较灵活。 最终的sources文件如下 TARGETNAME=pmonitor TARGETTYPE=DRIVER TARGETPATH=OBJ TARGETLIBS=$(DDK_LIB_PATH)/psxrtl.lib INCLUDES=$(BASEDIR)/inc;$(DDK_INC_PATH) SOURCES= Drivers.c WdmDyno.rc NTTARGETFILES=PostBuildSteps 发表于:2007-01-24 22:13:258楼 得分:0至于为什么要去掉 DRIVERTYPE=WDM 的原因是: DRIVERTYPE=WDM 要求在INCLUDES条目中用WDM_INC_PATH来代替DDK_INC_PATH 也就是在Driver.c中的头文件就应该是wdm.h,而不是ntddk.h 而在程序中使用到的某些函数原型却只有在ntddk.h中有,在wdm.h中没有.比如 typedef VOID (*PCREATE_PROCESS_NOTIFY_ROUTINE)( IN HANDLE ParentId, IN HANDLE ProcessId, IN BOOLEAN Create ); NTSTATUS PsSetCreateProcessNotifyRoutine( IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine, IN BOOLEAN Remove );