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


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

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

Синтаксис

NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferDataStart(
  [in]           NET_BUFFER          *NetBuffer,
  [in]           ULONG               DataOffsetDelta,
  [in]           BOOLEAN             FreeMdl,
  [in, optional] NET_BUFFER_FREE_MDL *FreeMdlHandler
);

Параметры

[in] NetBuffer

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

[in] DataOffsetDelta

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

[in] FreeMdl

Значение BOOLEAN, которое, если значение TRUE, запрашивает NDIS, чтобы освободить все многомерные списки, которые не будут использоваться в предварительной операции. Если freeMdl имеет значение FALSE, NDIS сохраняет неиспользуемые многомерные значения для использования в последующих операциях отступления.

[in, optional] FreeMdlHandler

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

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

None

Remarks

Если выделенная память NDIS для удовлетворения соответствующего вызоваФункция NdisRetreatNetBufferDataStart, а затем NdisAdvanceNetBufferDataStart освобождает память, выделенную NdisRetreatNetBufferDataStart. В противном случае память остается в MDL и изменяется только значение элемента DataOffsetструктуры NET_BUFFER .

NDIS вызывает функцию NetFreeMdl , указанную в FreeMdl , если NdisAdvanceNetBufferDataStart должна освободить память. NDIS вызывает NetFreeMdl только для освобождения многомерных выражений и памяти, выделенных драйвером в функции NetAllocateMdl .

Когда драйверы протокола вызывают NdisAdvanceNetBufferDataStart по пути получения для доступа к различным заголовкам транспорта, цепочку MDL не следует изменять, а FreeMdl имеет значение FALSE.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ndis/nblapi.h (включая ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_NetBuffer_Function(ndis)

См. также раздел

NET_BUFFER

NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl