Функция NdisRetreatNetBufferDataStart (ndis/nblapi.h)
Вызовите функцию NdisRetreatNetBufferDataStart, чтобы получить доступ к большему используемому пространству данных в цепочке MDL структуры NET_BUFFER.
Синтаксис
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
[in] NET_BUFFER *NetBuffer,
[in] ULONG DataOffsetDelta,
[in] ULONG DataBackFill,
[in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);
Параметры
[in] NetBuffer
Указатель на ранее выделенную NET_BUFFER структуру.
[in] DataOffsetDelta
Объем используемого пространства данных для добавления. NDIS настраивает DataOffset член структуры NET_BUFFER соответствующим образом. Если недостаточно неиспользуемого пространства данных для удовлетворения запроса, NDIS выделяет дополнительную память.
[in] DataBackFill
Если NDIS должен выделить память, этот параметр указывает объем пространства данных, в дополнение к значению параметра DataOffsetDelta.
[in, optional] AllocateMdlHandler
Необязательная точка входа для функции NetAllocateMdl. Если вызывающий объект указывает точку входа для функции NetAllocateMdl, NDIS вызывает NetAllocateMdl выделения MDL и памяти.
Возвращаемое значение
NdisRetreatNetBufferDataStart возвращает одно из следующих элементов:
Возвращаемый код | Описание |
---|---|
|
NdisRetreatNetBufferDataStart успешно выделено используемое пространство данных с помощью неиспользуемого пространства данных или путем выделения нового хранилища. |
|
NdisRetreatNetBufferDataStart произошел сбой из-за нехватки ресурсов. |
|
NdisRetreatNetBufferDataStart не удалось по причинам, отличным от нехватки ресурсов. |
Замечания
NdisRetreatNetBufferDataStart пытается удовлетворить запрос, уменьшая значение dataOffset члена структуры NET_BUFFER.
Если недостаточно неиспользуемого пространства данных, эта функция выделяет новый буфер и MDL для описания нового буфера и связывания нового MDL с началом цепочки MDL. NDIS вызывает функцию NetAllocateMdl, указанную в AllocateMdl, чтобы выделить MDL и память. Функция NetAllocateMdl может использовать любой метод выделения, соответствующий требованиям к проектированию драйвера.
Вызов функция NdisAdvanceNetBufferDataStart для выпуска используемого пространства данных, добавленного с NdisRetreatNetBufferDataStart.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.0 и более поздних версиях. |
целевая платформа | Всеобщий |
заголовка | ndis/nblapi.h (include ndis.h) |
библиотеки | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
правил соответствия DDI | Irql_NetBuffer_Function(ndis) |