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

Функция FwpsAllocateNetBufferAndNetBufferList0 выделяет новую структуру NET_BUFFER_LIST .

ПримечаниеFwpsAllocateNetBufferAndNetBufferList0 — это определенная версия FwpsAllocateNetBufferAndNetBufferList. Дополнительные сведения см. в разделах Имена Version-Independent и Выбор конкретных версий Windows .
 

Синтаксис

NTSTATUS FwpsAllocateNetBufferAndNetBufferList0(
  [in]           NDIS_HANDLE     poolHandle,
  [in]           USHORT          contextSize,
  [in]           USHORT          contextBackFill,
  [in, optional] MDL             *mdlChain,
  [in]           ULONG           dataOffset,
  [in]           SIZE_T          dataLength,
  [out]          NET_BUFFER_LIST **netBufferList
);

Параметры

[in] poolHandle

Дескриптор пула NET_BUFFER_LIST , полученный при предыдущем вызове функции NdisAllocateNetBufferListPool .

[in] contextSize

Размер (в байтах) используемого пространства данных в структуре NET_BUFFER_LIST_CONTEXT для резервирования для драйвера выноски. Значение этого параметра должно быть кратным значению, определенному MEMORY_ALLOCATION_ALIGNMENT.

[in] contextBackFill

Размер неиспользуемого пространства данных (пространства обратного заполнения), необходимого драйверу выноски (в байтах). Функция FwpsAllocateNetBufferAndNetBufferList0 добавляет это значение к значению, указанному в параметре ContextSize , и выделяет дополнительное пространство. Значение этого параметра должно быть кратным значению, определенному MEMORY_ALLOCATION_ALIGNMENT.

[in, optional] mdlChain

Указатель на цепочку MDL, которая используется для инициализации предварительной структуры NET_BUFFER. Этот параметр является необязательным и может иметь значение NULL.

[in] dataOffset

Начальное смещение (в байтах) от начала буфера до начала используемого пространства данных в цепочке MDL. Пространство данных перед этим смещением — это неиспользуемое пространство данных. Таким образом, это значение также представляет начальный объем доступного пространства обратного заполнения в цепочке MDL.

[in] dataLength

Длина (в байтах) используемого пространства данных в цепочке MDL.

[out] netBufferList

Указатель на переменную, получающую указатель на новую структуру NET_BUFFER_LIST .

Возвращаемое значение

Функция FwpsAllocateNetBufferAndNetBufferList0 возвращает один из следующих кодов NTSTATUS.

Код возврата Описание
STATUS_SUCCESS
Новая структура NET_BUFFER_LIST успешно выделена.
Другие коды состояния
Произошла ошибка.

Комментарии

Драйвер выноски вызывает функцию FwpsAllocateNetBufferAndNetBufferList0 для выделения новой структуры NET_BUFFER_LIST .

Эта функция является оболочкой вокругФункция NdisAllocateNetBufferAndNetBufferList, но она специализирована для использования функциями внедрения пакетов ВПП.

После успешного внедрения данных, описанных в новой структуре NET_BUFFER_LIST , в сетевой стек драйвер выноски освобождает новую структуру NET_BUFFER_LIST путем вызоваФункция FwpsFreeNetBufferList0.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista.
Целевая платформа Универсальное
Верхняя часть fwpsk.h (включая Fwpsk.h)
Библиотека Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

См. также раздел

FwpsFreeNetBufferList0

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferListPool

Функции внедрения пакетов