Функция NdisAdvanceNetBufferListDataStart (ndis/nblapi.h)
Вызовите функцию NdisAdvanceNetBufferListDataStart, чтобы освободить пространство данных, которое было заявлено в предыдущих вызовах функция NdisRetreatNetBufferListDataStart.
Синтаксис
NDIS_EXPORTED_ROUTINE VOID NdisAdvanceNetBufferListDataStart(
[in] NET_BUFFER_LIST *NetBufferList,
[in] ULONG DataOffsetDelta,
[in] BOOLEAN FreeMdl,
NET_BUFFER_FREE_MDL *FreeMdlMdlHandler
);
Параметры
[in] NetBufferList
Указатель на ранее выделенную NET_BUFFER_LIST структуру.
[in] DataOffsetDelta
Объем используемого пространства данных для выпуска.
[in] FreeMdl
Если true и NDIS выделенную память для удовлетворения соответствующего вызова NdisRetreatNetBufferListDataStart, эта функция освобождает выделенную память и связанный MDL.
FreeMdlMdlHandler
Необязательная точка входа для функции NetFreeMdl. Если вызывающий объект задает точку входа для функции NetFreeMdl, NDIS вызывает NetFreeMdl для освобождения MDL и памяти.
Возвращаемое значение
Никакой
Замечания
выпуски NdisAdvanceNetBufferListDataStartиспользуемых пространства данных для всех структур NET_BUFFER в структуре NET_BUFFER_LIST. Если FreeMdlTRUE и
NdisRetreatNetBufferListDataStart выделенную память для удовлетворения соответствующего запроса на выделение.
NdisAdvanceNetBufferListDataStart освобождает выделенную память. Вызов этой функции эквивалентен вызову
NdisAdvanceNetBufferDataStart для каждой NET_BUFFER структуры NET_BUFFER_LIST.
Однако вызов NdisAdvanceNetBufferListDataStart является более эффективным.
Если драйверы протокола вызывают NdisAdvanceNetBufferListDataStart на пути получения для доступа к различным заголовкам транспорта, цепочка MDL не должна быть изменена, а FreeMdlFALSE.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.0 и более поздних версиях. |
целевая платформа | Всеобщий |
заголовка | ndis/nblapi.h (include ndis.h) |
библиотеки | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
правил соответствия DDI | Irql_NetBuffer_Function(ndis) |