1. NET_BUFFER_LIST未定义
方法:在内核的入口处,所有include 之前添加如下代码:
#define NDIS620
例如在DriverEntry 函数定义的文件最开始添加。
#define NDIS620
#include <ntddk.h>
#include <fwpsk.h>
#include <fwpmk.h>
#include <wdf.h>
#include <stdarg.h>
#include <ntstrsafe.h>
#define INITGUID
#include <guiddef.h>
···
不同版本支持不同的NIDS版本号,具体可查:
Definitions with NDIS version numbers may use any of the following:
Version First available in
------------------------------------------------------------------
682 Windows 10, RS5 Release
681 Windows 10, version 1803
680 Windows 10, version 1709
670 Windows 10, version 1703
660 Windows 10, version 1607 / Windows Server 2016
651 Windows 10, version 1511
650 Windows 10, version 1507
640 Windows 8.1 / Windows Server 2012 R2
630 Windows 8 / Windows Server 2012
620 Windows 7 / Windows Server 2008 R2
61 Windows Vista SP1 / Windows Server 2008 RTM
60 Windows Vista RTM
52 Windows Server 2003 R2 / Windows Server 2003 + SNP
51 Windows XP / Windows Server 2003
50 Windows 2000
40 Windows 95
2. LNK2019 无法解析的外部符号 _FwpsCalloutRegister0
在项目属性添加的链接器如下添加库文件:
WDMSec.lib;FwpKClnt.lib;Fwpuclnt.lib;NTOSKrnl.lib;NetIO.lib;NDIS.lib;UUID.lib;advapi32.lib;kernel32.lib;