Функция NdisAllocateNetBufferListContext (ndis/nblapi.h)
Вызовите функцию NdisAllocateNetBufferListContext , чтобы выделить больше контекстного пространства в NET_BUFFER_LIST_CONTEXT структуре объекта
NET_BUFFER_LIST структура.
Синтаксис
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
[in] NET_BUFFER_LIST *NetBufferList,
[in] USHORT ContextSize,
[in] USHORT ContextBackFill,
[in] ULONG PoolTag
);
Параметры
[in] NetBufferList
Указатель на ранее выделенную NET_BUFFER_LIST структуру.
[in] ContextSize
Объем пространства контекста, выделяемого в структуре NET_BUFFER_LIST_CONTEXT. Это значение должно быть кратно значению, определенному параметром sizeof(void*)
.
[in] ContextBackFill
Объем памяти в дополнение к значению ContextSize, выделяемой, если NDIS должен выделить память для удовлетворения запроса. Это значение должно быть кратно значению, определенному параметром sizeof(void*)
.
[in] PoolTag
Тег пула ядра, который NDIS использует для выделения памяти для структуры NET_BUFFER_LIST_CONTEXT, если требуется выделение. Тег — это строка, разделенная одиночными кавычками и длиной до четырех символов, обычно указанная в обратном порядке. Тег пула ядра помогает NDIS определить владельца памяти.
Возвращаемое значение
NdisAllocateNetBufferListContext возвращает одно из следующих результатов:
Код возврата | Описание |
---|---|
|
NdisAllocateNetBufferListContext успешно выделил контекстное пространство путем уменьшения значения члена Offset структуры NET_BUFFER_LIST_CONTEXT или путем выделения новой памяти. |
|
Сбой NdisAllocateNetBufferListContext из-за нехватки ресурсов. |
|
Сбой NdisAllocateNetBufferListContext по другим причинам, кроме нехватки ресурсов. |
Комментарии
Если в структуре NET_BUFFER_LIST_CONTEXT достаточно неиспользуемого контекстного пространства для удовлетворения запроса, NdisAllocateNetBufferListContext просто уменьшает значение элемента Offset в структуре NET_BUFFER_LIST_CONTEXT. В противном случае NDIS выделяет новую память для контекстного пространства. Можно указать ContextBackFill , чтобы выделить дополнительную память, чтобы при следующем вызове NdisAllocateNetBufferListContext не нужно было выделять память.
ВызовитеФункция NdisFreeNetBufferListContext для освобождения контекстного пространства в структуре NET_BUFFER_LIST_CONTEXT, выделенной с помощью NdisAllocateNetBufferListContext.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Универсальное |
Верхняя часть | ndis/nblapi.h (включая ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Irql_NetBuffer_Function(ndis) |