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