Макрос NdisAdjustMdlLength (ndis.h)

Функция NdisAdjustMdlLength изменяет длину данных, связанных с MDL.

Синтаксис

void NdisAdjustMdlLength(
  [in]  _Mdl,
  [in]  _Length
);

Параметры

[in] _Mdl

Указатель на список дескрипторов памяти (MDL).

[in] _Length

Число байтов данных, описываемых MDL.

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

None

Remarks

Функция NdisAdjustMdlLength изменяет элемент ByteCount MDL, выделенный путем вызова функции NdisAllocateMdl .

Вызывающий объект NdisAdjustMdlLength может передавать только дескриптор MDL, выделенный вызывающим объектом. Он не может передать дескриптор MDL, выделенный другим драйвером.

Например, драйвер сетевого адаптера DMA для шин master вызывает NdisAdjustMdlLength с дескрипторами MDL, выделенными для указания получаемых многомерных выражений в блоке общей памяти. Прежде чем такой драйвер указывает полученные данные, он вызывает NdisAdjustMdlLength , чтобы дескриптор MDL, который он будет включать в индикатор получения, соответствует размеру полученных данных, если он меньше размера буфера приема сетевой карты.

Длина, передаваемая в NdisAdjustMdlLength , не может быть больше длины, переданной в NdisAllocateMdl при выделении дескриптора MDL.

Вызывающий объект NdisAdjustMdlLength должен восстановить длину до исходного значения, прежде чем освободить дескриптор MDL с помощью NdisFreeMdl.

Вызывающие функции NdisAdjustMdlLength могут выполняться в любом irQL, но обычно выполняются в IRQL <= DISPATCH_LEVEL.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Верхняя часть ndis.h (включая Ndis.h)
IRQL Любой уровень (см. раздел "Примечания")

См. также раздел

NdisAllocateMdl

NdisFreeMdl