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


Функция 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 (include ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferMdlAndData(ndis), NdisAllocateNetBufferMdlAndData_InitFail(ndis)

См. также

NET_BUFFER

NdisAllocateNetBuffer

NdisFreeNetBuffer