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

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

ПримечаниеFwpsReassembleForwardFragmentGroup0 — это определенная версия 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, должна быть той, которая указана функцией выноски classifyFn для FWPS_LAYER_IPFORWARD_V4 или FWPS_LAYER_IPFORWARD_V6 слоя при установке флага FWP_CONDITION_FLAG_IS_FRAGMENT_GROUP. Если это не так, поведение FwpsReassembleForwardFragmentGroup0 не определено.

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

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

Так как 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

classifyFn