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