Функция 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) |