FWPS_CLASSIFY_OUT0 结构 (fwpstypes.h)

FWPS_CLASSIFY_OUT0结构定义返回给标注的分类Fn 标注函数调用方的数据。

注意FWPS_CLASSIFY_OUT0特定版本的FWPS_CLASSIFY_OUT。 有关详细信息 ,请参阅 WFP Version-Independent 名称和面向 Windows 的特定版本
 

语法

typedef struct FWPS_CLASSIFY_OUT0_ {
  FWP_ACTION_TYPE actionType;
  UINT64          outContext;
  UINT64          filterId;
  UINT32          rights;
  UINT32          flags;
  UINT32          reserved;
} FWPS_CLASSIFY_OUT0;

成员

actionType

一个FWP_ACTION_TYPE值,该值指定要根据标注驱动程序的分类Fn 标注函数确定的建议操作。 标注驱动程序将此变量设置为以下值之一:

FWP_ACTION_BLOCK

阻止传输或接收数据。

FWP_ACTION_CONTINUE

将阻止或允许数据传输或接收的决定传递给筛选器引擎中的下一个筛选器。

FWP_ACTION_NONE

不对数据执行任何操作。

FWP_ACTION_NONE_NO_MATCH

不对数据执行任何操作,因为它与枚举的筛选器数据类型不匹配。

FWP_ACTION_PERMIT

允许传输或接收数据。

对此成员的写入访问权限由权限成员中的FWPS_RIGHT_ACTION_WRITE标志控制。 如果设置了 FWPS_RIGHT_ACTION_WRITE 标志,则标注驱动程序可以将上述任何值写入此成员。 如果未设置 FWPS_RIGHT_ACTION_WRITE 标志,则标注驱动程序不应写入此成员,除非它否决了以前由筛选器引擎中较高权重的筛选器返回 的FWP_ACTION_PERMIT 操作。 在这种情况下,标注驱动程序将此成员设置为 FWP_ACTION_BLOCK

outContext

预留给系统使用。 标注驱动程序不得使用此成员。

filterId

预留给系统使用。 标注驱动程序不得使用此成员。

rights

控制对此结构中其他成员的写入访问权限的标志。 可能的标志包括:

FWPS_RIGHT_ACTION_WRITE

如果设置了此标志,标注驱动程序可以写入此结构的 actionType 成员。 如果未设置此标志,则标注驱动程序只能写入此结构的 actionType 成员,前提是它否决了以前由筛选器引擎中更高权重的筛选器返回 的FWP_ACTION_PERMIT 操作。

flags

影响对数据执行的操作的标志。 可能的标志包括:

FWPS_CLASSIFY_OUT_FLAG_ABSORB

将无提示删除阻止的数据,而无需任何事件日志记录或审核。 这通常用于数据包修改,其中要吸收原始数据包,并进一步处理修改后的数据包。

actionType 成员设置为 FWP_ACTION_BLOCK 时,此标志适用于以下层:

FWPS_LAYER_INBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_OUTBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_INBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_OUTBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
FWPS_LAYER_INBOUND_IPPACKET_V4
FWPS_LAYER_INBOUND_IPPACKET_V6
FWPS_LAYER_OUTBOUND_IPPACKET_V4
FWPS_LAYER_OUTBOUND_IPPACKET_V6
FWPS_LAYER_INBOUND_TRANSPORT_V4
FWPS_LAYER_INBOUND_TRANSPORT_V6
FWPS_LAYER_OUTBOUND_TRANSPORT_V4
FWPS_LAYER_OUTBOUND_TRANSPORT_V6
FWPS_LAYER_INBOUND_ICMP_ERROR_V4
FWPS_LAYER_INBOUND_ICMP_ERROR_V6
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V4
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V6
FWPS_LAYER_DATAGRAM_DATA_V4
FWPS_LAYER_DATAGRAM_DATA_V6
FWPS_LAYER_STREAM_PACKET_V4
FWPS_LAYER_STREAM_PACKET_V6
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V6
FWPS_LAYER_ALE_AUTH_CONNECT_V4
FWPS_LAYER_ALE_AUTH_CONNECT_V6

还可以在FWPS_LAYER_ALE_FLOW_ESTABLISHED_V4层和FWPS_LAYER_ALE_FLOW_ESTABLISHED_V6层上设置此标志。 但不建议这样做,因为这些层旨在将上下文与流相关联。

如果未设置此标志,则阻止操作将受到正常的事件日志记录和审核的约束。

FWPS_CLASSIFY_OUT_FLAG_BUFFER_LIMIT_REACHED

当筛选器引擎的流数据缓冲区已满时,筛选器引擎将设置此标志。 如果标注的分类Fn 标注函数通过将 FWPS_STREAM_CALLOUT_IO_PACKET0 结构的 streamAction 成员设置为FWPS_STREAM_ACTION_NEED_MORE_DATA,直到达到缓冲区限制,重复请求更多数据,则可能会出现这种情况。 如果设置了此标志,则标注驱动程序的 分类Fn 标注函数必须允许或阻止所有流数据。

此标志仅适用于流层。

FWPS_CLASSIFY_OUT_FLAG_NO_MORE_DATA

Stream流断开连接后请求了数据。

reserved

预留给系统使用。 标注驱动程序不得使用此成员。

注解

筛选器引擎将指向 FWPS_CLASSIFY_OUT0 结构的指针传递到标注的 分类Fn 标注函数。 标注驱动程序使用此结构将数据返回到调用方。

要求

要求
最低受支持的客户端 从 Windows Vista 开始可用。
标头 fwpstypes.h (包括 Fwpsk.h、Fwpmtypes.h、Fwpmk.h)

另请参阅

FWPS_STREAM_CALLOUT_IO_PACKET0

运行时筛选层标识符

分类Fn