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 函数。 传递给 NdisAllocateNetBufferListPool 的调用方 NET_BUFFER_LIST_POOL_PARAMETERS 结构的 fAllocateNetBufferListPool 成员必须设置为 TRUEDataSize 成员设置为零。 如果此参数 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 片段列表组合到单个数据包中。 重新组合的数据包是一个包含一个 net 缓冲区并引用输入片段链的单个净缓冲区列表。 边缘防火墙通常使用此函数来检查网络数据包。

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

调用 FwpsFreeNetBufferList0 函数以释放 重新组合的Nbl NET_BUFFER_LIST 结构和所有关联的 NET_BUFFER 结构和 MDL 链。 FwpsFreeNetBufferList0 取消引用原始输入片段链。

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

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

要求

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

另请参阅

FwpsFreeNetBufferList0

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool

分类Fn