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

Драйверы NDIS вызывают функцию NdisAllocateNetBufferMdlAndData для выделения структуры NET_BUFFER вместе со связанным MDL и данными.

Синтаксис

NDIS_EXPORTED_ROUTINE NET_BUFFER * NdisAllocateNetBufferMdlAndData(
  [in] NDIS_HANDLE PoolHandle
);

Параметры

[in] PoolHandle

Дескриптор пула NET_BUFFER структуры, который ранее был возвращен при вызове функции NdisAllocateNetBufferPool .

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

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

Комментарии

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

Эта функция выделяет NET_BUFFER структуру, MDL и данные в одном буфере памяти. Это полезно для достижения высокой производительности при частом выделении и освобождении NET_BUFFER структур. Вызывающий объект не должен вызывать NdisAllocateNetBuffer для выделения NET_BUFFERs из NET_BUFFER пулов, содержащих данные.

NDIS использует параметр PoolHandle для получения блока памяти, а затем создает NET_BUFFER, MDL и буфер данных.

Чтобы освободить NET_BUFFER и связанные сведения, вызовите функцию NdisFreeNetBuffer .

Требования

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

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

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer