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


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

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

Синтаксис

NDIS_EXPORTED_ROUTINE NET_BUFFER_LIST * NdisAllocateNetBufferList(
  [in] NDIS_HANDLE PoolHandle,
  [in] USHORT      ContextSize,
  [in] USHORT      ContextBackFill
);

Параметры

[in] PoolHandle

Дескриптор пула структуры NET_BUFFER_LIST, который ранее был возвращен при вызове NdisAllocateNetBufferListPool.

[in] ContextSize

Объем используемого пространства данных в структуре NET_BUFFER_LIST_CONTEXT для резервирования для вызывающего объекта. ContextSize должен быть кратным значению, определенному MEMORY_ALLOCATION_ALIGNMENT.

[in] ContextBackFill

Объем неиспользуемого пространства данных (пространства обратного заполнения), необходимого вызывающей стороне. NDIS добавляет это значение в ContextSize и выделяет дополнительное пространство. Параметр ContextBackFill должен быть кратным значению, определенному MEMORY_ALLOCATION_ALIGNMENT.

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

NdisAllocateNetBufferList возвращает указатель на выделенную NET_BUFFER_LIST структуру. Если выделение не удалось, этот указатель имеет значение NULL.

Комментарии

Можно вызвать NdisAllocateNetBufferList илиФункция NdisAllocateNetBufferAndNetBufferList для выделения структуры NET_BUFFER_LIST из пула.

Обратите вниманиеNET_BUFFER и NET_BUFFER_LIST структуры должны быть выделены из буферного пула NDIS. Драйвер не должен выделять и инициализировать структуру NET_BUFFER_LIST или NET_BUFFER из частного пула памяти или стека.
 
Если вы вызвали NdisAllocateNetBufferList и пул структуры NET_BUFFER_LIST был выделен путем вызоваФункция NdisAllocateNetBufferListPool с элементом fAllocateNetBufferструктуры NET_BUFFER_LIST_POOL_PARAMETERS имеет значение TRUE, NDIS выделяет NET_BUFFER_LIST, NET_BUFFER, MDL и данные.

Вызовите функцию NdisFreeNetBufferList , чтобы освободить структуру NET_BUFFER_LIST.

Требования

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

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

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferListPool

NdisFreeNetBufferList