Функция 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, должна быть той, которая указывается функцией классифицировать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 |
См. также
NET_BUFFER_LIST_POOL_PARAMETERS
NdisAllocateNetBufferListPool