Функция NdisAllocateReassembledNetBufferList (ndis/nblapi.h)

Вызовите функцию NdisAllocateReassembledNetBufferList , чтобы повторно получить фрагментированную NET_BUFFER_LIST структуру.

Синтаксис

NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateReassembledNetBufferList(
                 NET_BUFFER_LIST *FragmentNetBufferList,
  [in, optional] NDIS_HANDLE     NetBufferAndNetBufferListPoolHandle,
  [in]           ULONG           StartOffset,
  [in]           ULONG           DataOffsetDelta,
  [in]           ULONG           DataBackFill,
  [in]           ULONG           AllocateReassembleFlags
);

Параметры

FragmentNetBufferList

Указатель на структуру NET_BUFFER_LIST для повторного создания.

[in, optional] NetBufferAndNetBufferListPoolHandle

Дескриптор пула структуры NET_BUFFER_LIST, который ранее был возвращен изФункция NdisAllocateNetBufferListPool. Член fAllocateNetBufferNET_BUFFER_LIST_POOL_PARAMETERS структуры, которую вызывающий объект передал в NdisAllocateNetBufferListPool , должен иметь значение TRUE, а для элемента DataSize — нулевое значение. Если этот параметр имеет значение NULL, NDIS использует внутренний пул.

[in] StartOffset

Объем данных, пропускаемых в начале каждого источника NET_BUFFER структуры. Эта сумма является дополнением к значению, указанному в элементе DataOffset структуры NET_BUFFER.

[in] DataOffsetDelta

Количество байтов используемого пространства данных для добавления в повторной сборке NET_BUFFER структуре.

[in] DataBackFill

Если требуется выделение неиспользуемого пространства данных (пространства обратного заполнения), этот параметр указывает количество байтов неиспользуемого пространства данных в дополнение к DataOffsetDelta для выделения.

[in] AllocateReassembleFlags

Флаги NDIS, которые можно объединить с операцией OR. Задайте для этого параметра нулевое значение. В настоящее время для этой функции не определены флаги.

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

Если операция повторного сборки выполнена успешно, NdisAllocateReassembledNetBufferList возвращает повторносбранную структуру NET_BUFFER_LIST. Если операция завершается сбоем, возвращается значение NULL.

Комментарии

NdisAllocateReassembledNetBufferList выделяет, инициализирует и возвращает новую структуру NET_BUFFER_LIST , которая включает одну NET_BUFFER структуру и одну цепочку MDL. Новая структура NET_BUFFER_LIST описывает те же данные, что и фрагментированные исходные NET_BUFFER_LIST структуры, переданной драйвером в FragmentedNetBufferList. После пропуска числа байтов, указанного в startOffset , в каждой фрагментаной NET_BUFFER структуре, NDIS объединяет оставшиеся данные в каждой фрагментаной NET_BUFFER структуре в одну повторно собираемую NET_BUFFER структуру. Повторно собираемые структуры NET_BUFFER_LIST не включают инициал структура NET_BUFFER_LIST_CONTEXT .

ВызовитеФункция NdisFreeReassembledNetBufferList для освобождения повторной сборки NET_BUFFER_LIST структуры и всех связанных структур NET_BUFFER и цепочек MDL.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis/nblapi.h (включая ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_NetBuffer_Function(ndis), NdisAllocateReassembledNetBufferList(ndis), NdisAllocateReassembledNetBufferList_InitFail(ndis)

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

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferListPool NdisFreeReassembledNetBufferList