Поделиться через


Функция FwpsReassembleForwardFragmentGroup0 (fwpsk.h)

Функция FwpsReassembleForwardFragmentGroup0 собирает список фрагментов IP-адресов в пути пересылки данных в один пакет.

ПримечаниеFwpsReassembleForwardFragmentGroup 0 — это определенная версия FwpsReassembleForwardFragmentGroup. Дополнительные сведения см. в статье МПП 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

Указатель на цепочку NET_BUFFER_LIST фрагментов IP-адресов для повторного выделения в один пакет. Дополнительные сведения об использовании этого параметра см. в примечаниях.

[in, optional] netBufferAndNetBufferListPoolHandle

Необязательный дескриптор пула структур NET_BUFFER_LIST, возвращенный ранее из функция NdisAllocateNetBufferListPool. Элемент fAllocateNetBuffer структуры NET_BUFFER_LIST_POOL_PARAMETERS, который вызывающий объект передал NdisAllocateNetBufferListPool, должен иметь значение 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 собирает список фрагментов IP-адресов в пути пересылки данных, описанных цепочкой NET_BUFFER_LIST, в один пакет. Пакет повторной сборки — это один чистый список буферов, содержащий один чистый буфер и ссылающийся на цепочку входных фрагментов. Эта функция обычно используется пограничными брандмауэрами для проверки сетевых пакетов.

Входная цепочка фрагментов IP-адресов, fragmentGroupNblChain, должна быть той, которая указывается функцией классифицироватьFn на уровень FWPS_LAYER_IPFORWARD_V4 или FWPS_LAYER_IPFORWARD_V6 при установке флага FWP_CONDITION_FLAG_IS_FRAGMENT_GROUP. Если это не так, поведение FwpsReassembleForwardFragmentGroup0 не определено.

Вызовите функцию FwpsFreeNetBufferList0, чтобы освободить структуру reassembledNbl NET_BUFFER_LIST и все связанные структуры NET_BUFFER и цепочки MDL. FwpsFreeNetBufferList0 разыменовывает исходную цепочку фрагментов ввода.

Для просмотра текущего параметра "Перенаправленные фрагменты группы" для системы можно использовать следующую команду: интерфейс netsh {ipv4|ipv6} отображает глобальные.

Так как FwpsReassembleForwardFragmentGroup0 ссылается на цепочку входных фрагментов, перед вызовом этой функции не требуется ссылаться на выноски или клонировать цепочку.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Server 2008.
целевая платформа Всеобщий
заголовка fwpsk.h (include Fwpsk.h)
библиотеки Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

См. также

FwpsFreeNetBufferList0

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool

классифицироватьFn