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

NdisMFreeSharedMemory освобождает память, которая была ранее выделена NdisMAllocateSharedMemory или NdisMAllocateSharedMemoryAsyncEx по драйверу сетевой карты DMA.

Синтаксис

void NdisMFreeSharedMemory(
  [in] NDIS_HANDLE           MiniportAdapterHandle,
  [in] ULONG                 Length,
  [in] BOOLEAN               Cached,
  [in] PVOID                 VirtualAddress,
  [in] NDIS_PHYSICAL_ADDRESS PhysicalAddress
);

Параметры

[in] MiniportAdapterHandle

Указывает дескриптор, который изначально был введен для MiniportInitializeEx.

[in] Length

Указывает количество изначально выделенных байтов.

[in] Cached

Указывает значение TRUE , если исходное выделение было кэшируемым.

[in] VirtualAddress

Указывает базовый виртуальный адрес, возвращаемый NdisMAllocateSharedMemory или NdisMAllocateSharedMemoryAsyncEx.

[in] PhysicalAddress

Указывает соответствующий физический адрес, возвращенный NdisMAllocateSharedMemory или NdisMAllocateSharedMemoryAsyncEx.

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

None

Remarks

Если он уже успешно вызвал NdisMAllocateSharedMemory , или NdisMAllocateSharedMemoryAsyncEx, драйвер мини-порта устройства DMA вызывает NdisMFreeSharedMemory , если происходит одно из следующих действий:

  • Ее функция MiniportInitializeEx не может инициализировать сетевой адаптер, поэтому эта функция должна освободить все существующие утверждения на аппаратных ресурсах для этой сетевой карты, прежде чем она вернет управление.
  • Сетевой адаптер, для которого драйвер мини-порта выделил память, удаляется.
  • Драйвер выгружается из-за завершения работы системы или из-за того, что пользователь перенастроил сетевые компоненты, используемые на компьютере.
  • Драйвер выделил дополнительную общую память с NdisMAllocateSharedMemoryAsyncEx , когда спрос на ввод-вывод на сетевом адаптере был высоким, но сетевой трафик теперь утих до среднего уровня.
Драйвер мини-порта не может вызвать NdisMFreeSharedMemory , чтобы освободить поддиапазон в пределах выделенного диапазона общей памяти. Параметры, передаваемые в NdisMFreeSharedMemory , должны точно соответствовать параметрам, переданным в NdisMAllocateSharedMemory или NdisMAllocateSharedMemoryAsyncEx.

NdisMFreeSharedMemory нельзя вызвать из функции MiniportShutdownEx .

Microsoft Windows Server 2003, Windows XP с пакетом обновления 1 (SP1) и более поздние версии Windows позволяют вызывать NdisMFreeSharedMemory как сетевые адаптеры master шины DMA, так и подчиненные сетевые адаптеры DMA. Предыдущие выпуски разрешали вызов NdisMFreeSharedMemory только сетевым адаптерам DMA с master шины.

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisMFreeSharedMemory (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisMFreeSharedMemory (NDIS 5.1)) в Windows XP.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI Irql_Miniport_Driver_Function(ndis), NdisMFreeSharedMemory(ndis)

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

MiniportHaltEx

MiniportInitializeEx

MiniportSharedMemoryAllocateComplete

MiniportShutdownEx

NdisMAllocateSharedMemory

NdisMAllocateSharedMemoryAsyncEx