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


Функция 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

Размер в байтах неиспользуемого пространства данных (резервного пространства), необходимого драйверу выноски. Функция FwpsAllocateNetBufferAndNetBufferList 0 добавляет это значение в значение, указанное в параметре 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 (include Fwpsk.h)
библиотеки Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

См. также

FwpsFreeNetBufferList0

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferListPool

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