Поделиться через


Функция NdisRetreatNetBufferDataStart (ndis/nblapi.h)

Вызовите функцию NdisRetreatNetBufferDataStart, чтобы получить доступ к большему используемому пространству данных в цепочке MDL структуры NET_BUFFER.

Синтаксис

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
  [in]           NET_BUFFER              *NetBuffer,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);

Параметры

[in] NetBuffer

Указатель на ранее выделенную NET_BUFFER структуру.

[in] DataOffsetDelta

Объем используемого пространства данных для добавления. NDIS настраивает DataOffset член структуры NET_BUFFER соответствующим образом. Если недостаточно неиспользуемого пространства данных для удовлетворения запроса, NDIS выделяет дополнительную память.

[in] DataBackFill

Если NDIS должен выделить память, этот параметр указывает объем пространства данных, в дополнение к значению параметра DataOffsetDelta.

[in, optional] AllocateMdlHandler

Необязательная точка входа для функции NetAllocateMdl. Если вызывающий объект указывает точку входа для функции NetAllocateMdl, NDIS вызывает NetAllocateMdl выделения MDL и памяти.

Возвращаемое значение

NdisRetreatNetBufferDataStart возвращает одно из следующих элементов:

Возвращаемый код Описание
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferDataStart успешно выделено используемое пространство данных с помощью неиспользуемого пространства данных или путем выделения нового хранилища.
NDIS_STATUS_RESOURCES
NdisRetreatNetBufferDataStart произошел сбой из-за нехватки ресурсов.
NDIS_STATUS_FAILURE
NdisRetreatNetBufferDataStart не удалось по причинам, отличным от нехватки ресурсов.

Замечания

NdisRetreatNetBufferDataStart пытается удовлетворить запрос, уменьшая значение dataOffset члена структуры NET_BUFFER.

Если недостаточно неиспользуемого пространства данных, эта функция выделяет новый буфер и MDL для описания нового буфера и связывания нового MDL с началом цепочки MDL. NDIS вызывает функцию NetAllocateMdl, указанную в AllocateMdl, чтобы выделить MDL и память. Функция NetAllocateMdl может использовать любой метод выделения, соответствующий требованиям к проектированию драйвера.

Вызов функция NdisAdvanceNetBufferDataStart для выпуска используемого пространства данных, добавленного с NdisRetreatNetBufferDataStart.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Всеобщий
заголовка ndis/nblapi.h (include ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_NetBuffer_Function(ndis)

См. также

NET_BUFFER

NdisAdvanceNetBufferDataStart

NetAllocateMdl