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