Макрос 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 | Любой уровень (см. раздел "Примечания") |