FwpsReassembleForwardFragmentGroup0 函数 (fwpsk.h)

FwpsReassembleForwardFragmentGroup0 函数将转发数据路径中的 IP 片段列表组合成单个数据包。

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

语法

NTSTATUS FwpsReassembleForwardFragmentGroup0(
  [in]           ADDRESS_FAMILY  addressFamily,
  [in, out]      NET_BUFFER_LIST *fragmentGroupNblChain,
  [in, optional] NDIS_HANDLE     netBufferAndNetBufferListPoolHandle,
  [in]           ULONG           dataBackFill,
  [in]           ULONG           flags,
  [out]          NET_BUFFER_LIST **reassembledNbl
);

参数

[in] addressFamily

以下地址系列之一:

AF_INET

IPv4 地址系列。

AF_INET6

IPv6 地址系列。

[in, out] fragmentGroupNblChain

指向要重新组合成单个数据包的 IP 片段 NET_BUFFER_LIST 链的指针。 有关此参数用法的详细信息,请参阅备注。

[in, optional] netBufferAndNetBufferListPoolHandle

以前从 返回 的可选NET_BUFFER_LIST结构池句柄 NdisAllocateNetBufferListPool 函数。 调用方传递给 NdisAllocateNetBufferListPoolNET_BUFFER_LIST_POOL_PARAMETERS 结构的 fAllocateNetBuffer 成员必须设置为 TRUE,DataSize 成员必须设置为零。 如果此参数为 NULL,则 NDIS 使用内部池。

[in] dataBackFill

如果需要分配未使用的数据空间 (回填空间) ,则此参数指定要分配的未使用数据空间的字节数。

[in] flags

保留。 标注驱动程序必须将此参数设置为零。

[out] reassembledNbl

指向 NET_BUFFER_LIST 指针的指针,该指针接收已重新组合的单个网络缓冲区列表的地址。

返回值

FwpsReassembleForwardFragmentGroup0 函数返回以下 NTSTATUS 代码之一。

返回代码 说明
STATUS_SUCCESS
IP 片段列表已成功重新组合成单个 NET_BUFFER_LIST 结构。
STATUS_FWP_TCPIP_NOT_READY
TCP/IP 网络堆栈尚未准备好执行数据包重新组合。 如果在加载 Tcpip.sys 之前或卸载 Tcpip.sys 之后调用此函数,则会发生此错误。
其他状态代码
出现了错误。

注解

FwpsReassembleForwardFragmentGroup0 函数将转发数据路径中由NET_BUFFER_LIST链描述的 IP 片段列表组合成单个数据包。 重新组合的数据包是包含一个网络缓冲区并引用输入片段链的单个网络缓冲区列表。 边缘防火墙通常使用此函数来检查网络数据包。

IP 片段的输入链 fragmentGroupNblChain 必须是在设置FWP_CONDITION_FLAG_IS_FRAGMENT_GROUP标志时,由 classifyFn 标注函数指示FWPS_LAYER_IPFORWARD_V4或FWPS_LAYER_IPFORWARD_V6层的输入链。 如果不是这种情况,则 FwpsReassembleForwardFragmentGroup0 的行为未定义。

调用 FwpsFreeNetBufferList0 函数以释放 reassembledNbl NET_BUFFER_LIST 结构以及所有相关 NET_BUFFER 结构和 MDL 链。 FwpsFreeNetBufferList0 取消引用原始输入片段链。

可以使用以下命令查看系统的当前“组转发片段”设置: netsh 接口 {ipv4|ipv6} show global

由于 FwpsReassembleForwardFragmentGroup0 引用输入片段链,因此在调用此函数之前,标注不需要引用或克隆该链。

要求

要求
最低受支持的客户端 从 Windows Server 2008 开始可用。
目标平台 通用
标头 fwpsk.h (包括 Fwpsk.h)
Library Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

另请参阅

FwpsFreeNetBufferList0

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool

classifyFn