至于为什么要去掉 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
);