问题描述
我正在开发一个 WFP 驱动程序来检测 IGMP 数据包并获取相同的副本以进行分析。 我可以过滤 ICMP 但不能过滤 IGMP 数据包,希望 IGMP 和 ICMP 的过滤器配置没有太大变化。 添加过滤器配置的代码片段,是否有任何特定的方法来过滤 IGMP 或我缺少的任何过滤器配置?..
filter.displayData.name = EXAMPLE_FILTER_NAME;
filter.displayData.description = EXAMPLE_FILTER_DESCRIPTION;
filter.action.type = FWP_ACTION_CALLOUT_inspection;
filter.subLayerKey = EXAMPLE_SUBLAYER_GUID;
filter.weight.type = FWP_UINT8;
filter.weight.uint8 = 0xf;
filter.numFilterConditions = 1;
filter.layerKey = FWPM_LAYER_INBOUND_TRANSPORT_V4;
filter.action.calloutKey = EXAMPLE_CALLOUT_GUID;
// IGMP protocol filter condition
fwpConditions[0].fieldKey = FWPM_CONDITION_IP_PROTOCOL;
fwpConditions[0].matchType = FWP_MATCH_EQUAL;
fwpConditions[0].conditionValue.type = FWP_UINT8;
fwpConditions[0].conditionValue.uint8 = IPPROTO_IGMP;
filter.filterCondition = fwpConditions;
status = FwpmFilteradd(filter_engine_handle,&filter,NULL,&(example_filter_id));
if (status != STATUS_SUCCESS){
DbgPrint("Failed to register example filter,status 0x%08x",status);
}
else{
DbgPrint("Example filter registered");
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)