Функция NdisRetreatNetBufferListDataStart (ndis/nblapi.h)
Вызовите функцию NdisRetreatNetBufferListDataStart , чтобы увеличить используемое пространство данных во всех NET_BUFFER структурах в NET_BUFFER_LIST структуре.
Синтаксис
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
[in] NET_BUFFER_LIST *NetBufferList,
[in] ULONG DataOffsetDelta,
[in] ULONG DataBackFill,
[in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
[in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);
Параметры
[in] NetBufferList
Указатель на ранее выделенную NET_BUFFER_LIST структуру.
[in] DataOffsetDelta
Объем дополнительного используемого пространства данных в каждой NET_BUFFER структуре. Если недостаточно неиспользуемого пространства данных для удовлетворения запроса, NDIS выделяет больше памяти.
[in] DataBackFill
Если NDIS необходимо выделить память, этот параметр указывает объем пространства данных в дополнение к значению параметра DataOffsetDelta для выделения.
[in, optional] AllocateMdlHandler
Необязательная точка входа для функции NetAllocateMdl . Если вызывающий объект задает точку входа для функции NetAllocateMdl , NDIS вызывает NetAllocateMdl для выделения MDL и памяти.
[in, optional] FreeMdlHandler
Необязательная точка входа для функции NetFreeMdl . Если вызывающий объект указывает точку входа для функции NetFreeMdl , NDIS вызывает NetFreeMdl для освобождения MDL и памяти.
Возвращаемое значение
NdisRetreatNetBufferListDataStart возвращает одно из следующих результатов:
Код возврата | Описание |
---|---|
|
NdisRetreatNetBufferListDataStart успешно выделяет пространство данных во всех NET_BUFFER структурах либо путем уменьшения значения элемента DataOffset , либо путем выделения нового хранилища. |
|
Сбой запуска NdisRetreatNetBufferListDataStart из-за нехватки ресурсов. |
|
Сбой NdisRetreatNetBufferListDataStart по другим причинам, кроме нехватки ресурсов. |
Комментарии
Вызов NdisRetreatNetBufferListDataStart эквивалентен вызовуФункция NdisRetreatNetBufferDataStart для каждой структуры NET_BUFFER в структуре NET_BUFFER_LIST. NdisRetreatNetBufferListDataStart пытается удовлетворить запрос, уменьшая значение элемента DataOffset в каждой NET_BUFFER структуре. Если доступно недостаточно неиспользуемого пространства данных , эта функция выделяет новый буфер и MDL, а затем приковывает новый MDL к началу цепочки MDL в структуре NET_BUFFER.
ВызовитеФункция NdisAdvanceNetBufferListDataStart для освобождения пространства данных, которое было заявлено в предыдущем вызове NdisRetreatNetBufferListDataStart. Кроме того, драйвер может вызватьФункция NdisAdvanceNetBufferDataStart для каждой NET_BUFFER структуры NET_BUFFER_LIST. Вызов NdisAdvanceNetBufferListDataStart более эффективен.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Универсальное |
Верхняя часть | ndis/nblapi.h (включая ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Irql_NetBuffer_Function(ndis) |