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