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