我对 Windows 过滤平台非常陌生.. 我正在尝试学习这个.. 我从 msdn 网站的代码开始.. 就像这里一样。我尝试编译代码,但在头文件 "fwptypes.h" 中出现 13 个错误。我不知道如何解决这个问题..任何建议..这是错误IMG
问问题
1140 次
2 回答
2
为了消除第一个错误(预编译头),有三种方法:
- 将您的项目设置更改为“不使用预编译头文件”(右键单击项目->在弹出菜单中选择“属性”->配置属性->C/C++->预编译头文件->预编译头文件)。
或者 2. 将演示代码复制到头文件而不是 cpp 文件中。
或者 3. 在演示代码前添加“stdafx.h”。
对于其他编译错误,试试这个(这个解决方案来自http://social.msdn.microsoft.com/Forums/en-US/wfp/thread/8fd93a3d-a794-4233-9ff7-09b89eed6b1f,我测试过,它有效) :
头文件中存在错误(额外的行空格)。您可以直接修改副本:
FwpTypes.h @ 第 275 行:
#define FWP_ACTION_BLOCK \
(0x00000001 | FWP_ACTION_FLAG_TERMINATING)
#define FWP_ACTION_PERMIT \
(0x00000002 | FWP_ACTION_FLAG_TERMINATING)
#define FWP_ACTION_CALLOUT_TERMINATING \
(0x00000003 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_TERMINATING)
#define FWP_ACTION_CALLOUT_INSPECTION \
(0x00000004 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_NON_TERMINATING)
#define FWP_ACTION_CALLOUT_UNKNOWN \
(0x00000005 | FWP_ACTION_FLAG_CALLOUT)
#define FWP_ACTION_CONTINUE \
(0x00000006 | FWP_ACTION_FLAG_NON_TERMINATING)
#define FWP_ACTION_NONE \
(0x00000007)
#define FWP_ACTION_NONE_NO_MATCH \
(0x00000008)
FwpTypes.h @ 第 343 行
#define FWP_FILTER_ENUM_VALID_FLAGS \
(FWP_FILTER_ENUM_FLAG_BEST_TERMINATING_MATCH | \
FWP_FILTER_ENUM_FLAG_SORTED)
IkeTypes.h @ 第 367 行
#define IKEEXT_ERROR_CODE_COUNT \
(ERROR_IPSEC_IKE_NEG_STATUS_END - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN)
于 2012-06-11T08:19:31.207 回答
0
您可以使用 WinDivert 开源 WFP 标注驱动程序。
WinDivert 本质上将数据包传递给底层的 Windows 过滤平台 (WFP) 数据包注入函数。
查看此链接以获取更多信息.. http://reqrypt.org/windivert.html
于 2013-10-13T16:15:09.593 回答