Поделиться через


Функция 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.

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

Никакой

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. NdisMFreeSharedMemory (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. NdisMFreeSharedMemory (NDIS 5.1)) в Windows XP.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_Miniport_Driver_Function(ndis), NdisMFreeSharedMemory(ndis)

См. также

MiniportHaltEx

MiniportInitializeEx

MiniportSharedMemoryAllocateComplete

MiniportShutdownEx

NdisMAllocateSharedMemory

NdisMAllocateSharedMemoryAsyncEx