Функция FwpsReassembleForwardFragmentGroup0 (fwpsk.h)
Функция FwpsReassembleForwardFragmentGroup0 собирает список фрагментов IP-адресов в пути к данным пересылки в один пакет.
Синтаксис
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.
Код возврата | Описание |
---|---|
|
Список фрагментов IP-адресов был успешно перестроен в одну NET_BUFFER_LIST структуру. |
|
Сетевой стек 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 |
См. также раздел
NET_BUFFER_LIST_POOL_PARAMETERS
NdisAllocateNetBufferListPool