Partilhar via


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 a entrada do identificador originalmente para MiniportInitializeEx.

[in] Length

Especifica o número de bytes alocados originalmente.

[in] Cached

Especifica verdadeiro se a alocação original era 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.

Valor de retorno

Nenhum

Observações

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

  • Sua função MiniportInitializeEx não consegue 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 miniporto 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 àqueles 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 mestres de barramento e NICs DMA subordinadas chamem NdisMFreeSharedMemory. Versões anteriores permitem que apenas nics DMA mestres de barramento chamem NdisMFreeSharedMemory.

Requisitos

Requisito Valor
de cliente com suporte mínimo 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.
da Plataforma de Destino Universal
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
regras de conformidade de DDI Irql_Miniport_Driver_Function(ndis), NdisMFreeSharedMemory(ndis)

Consulte também

MiniportHaltEx

MiniportInitializeEx

MiniportSharedMemoryAllocateComplete

MiniportShutdownEx

NdisMAllocateSharedMemory

NdisMAllocateSharedMemoryAsyncEx