Função NdisMFreeSharedMemory (ndis.h)

NdisMFreeSharedMemory libera memória que foi alocada anteriormente por NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx pelo driver de uma NIC de DMA.

Sintaxe

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

Parâmetros

[in] MiniportAdapterHandle

Especifica o identificador originalmente inserido para MiniportInitializeEx.

[in] Length

Especifica o número de bytes originalmente alocados.

[in] Cached

Especifica TRUE se a alocação original era armazenável em cache.

[in] VirtualAddress

Especifica o endereço virtual base retornado por NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx.

[in] PhysicalAddress

Especifica o endereço físico correspondente retornado por NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx.

Retornar valor

Nenhum

Comentários

Se ele já fez uma chamada bem-sucedida para NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx, o driver de miniporto de um dispositivo DMA chama NdisMFreeSharedMemory se qualquer um dos seguintes procedimentos ocorrer:

  • Sua função MiniportInitializeEx não pode inicializar a NIC, portanto, essa função deve liberar todas as declarações existentes em recursos de hardware para essa NIC antes de retornar o controle.
  • A NIC para a qual o driver de miniporto alocou a memória está sendo removida.
  • O driver está sendo descarregado, seja porque o sistema está sendo desligado ou porque o usuário reconfigurou os componentes de rede usados no computador.
  • O driver alocou memória compartilhada adicional com NdisMAllocateSharedMemoryAsyncEx quando a demanda de E/S em uma NIC era alta, mas o tráfego de rede agora diminuiu para um nível médio.
Um driver de miniporta não pode chamar NdisMFreeSharedMemory para liberar um subrange dentro de um intervalo de memória compartilhado alocado. Os parâmetros passados para NdisMFreeSharedMemory devem corresponder exatamente aos que foram passados para NdisMAllocateSharedMemory ou NdisMAllocateSharedMemoryAsyncEx.

NdisMFreeSharedMemory não pode ser chamado de uma função MiniportShutdownEx .

O Microsoft Windows Server 2003, o Windows XP Service Pack 1 e versões posteriores do Windows permitem que nics DMA master de barramento e NICs de DMA subordinadas chamem NdisMFreeSharedMemory. As versões anteriores permitem que apenas nics DMA master de barramento chamem NdisMFreeSharedMemory.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisMFreeSharedMemory (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisMFreeSharedMemory (NDIS 5.1)) no Windows XP.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI Irql_Miniport_Driver_Function(ndis), NdisMFreeSharedMemory(ndis)

Confira também

MiniportHaltEx

MiniportInitializeEx

MiniportSharedMemoryAllocateComplete

MiniportShutdownEx

NdisMAllocateSharedMemory

NdisMAllocateSharedMemoryAsyncEx