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


Функция 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

Логическое значение, которое, если TRUE, запрашивает NDIS для освобождения всех МНОГОМЕРных выражений, которые становятся неиспользуемых в предварительной операции. Если FreeMdlfalse, NDIS сохраняет неиспользуемые МНОГОМЕРные выражения для использования в последующих операциях отступления.

[in, optional] FreeMdlHandler

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

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

Никакой

Замечания

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

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

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

Требования

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

См. также

NET_BUFFER

NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl