Функция NdisFreeMemory (ndis.h)

Функция NdisFreeMemory освобождает блок памяти, который ранее был выделен функцией NdisAllocateMemoryWithTagPriority .

Синтаксис

void NdisFreeMemory(
  [in] PVOID VirtualAddress,
  [in] UINT  Length,
  [in] UINT  MemoryFlags
);

Параметры

[in] VirtualAddress

Указатель на базовый виртуальный адрес выделенной памяти. Этот адрес был возвращен функцией NdisAllocateMemoryWithTagPriority .

[in] Length

Размер блока памяти, который необходимо освободить в байтах. Если память была выделена с помощью NdisAllocateMemoryWithTagPriority или параметр MemoryFlags равен нулю, этот параметр игнорируется.

[in] MemoryFlags

Набор флагов, указывающий тип свободной памяти. Это значение должно быть равным нулю, если память была выделена с помощью NdisAllocateMemoryWithTagPriority. В NDIS 6.0 и более поздних версиях для выделения памяти всегда используется NdisAllocateMemoryWithTagPriority .

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

None

Remarks

Так как несвязанная память и непрерывная память редко освобождаются до тех пор, пока не выгрузится драйвер минипорта, вызывающий объект NdisFreeMemory обычно выполняется в IRQL = PASSIVE_LEVEL для этих типов освобождений. В любом случае:

  • При освобождении непрерывной памяти вызывающий объект NdisFreeMemory должен работать в IRQL = PASSIVE_LEVEL.
  • При освобождении некачечной памяти вызывающий объект NdisFreeMemory должен выполняться в IRQL < DISPATCH_LEVEL.
  • При освобождении памяти, которая не является непрерывной или некэшированной, вызывающий объект NdisFreeMemory должен выполняться в IRQL <= DISPATCH_LEVEL.

Требования

   
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. NdisFreeMemory (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. NdisFreeMemory (NDIS 5.1)) в Windows XP.
Целевая платформа Универсальное
Заголовок ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL См. раздел "Примечания"
Правила соответствия DDI Irql_Miscellaneous_Function(ndis), NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis)

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

MiniportHaltEx

NdisAllocateMemoryWithTagPriority