Partilhar via


Função NdisFreeMemory (ndis.h)

A função NdisFreeMemory libera um bloco de memória que foi alocado anteriormente com a função NdisAllocateMemoryWithTagPriority.

Sintaxe

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

Parâmetros

[in] VirtualAddress

Um ponteiro para o endereço virtual base da memória alocada. Esse endereço foi retornado pela função NdisAllocateMemoryWithTagPriority.

[in] Length

O tamanho, em bytes, do bloco de memória a ser liberado. Se a memória foi alocada com NdisAllocateMemoryWithTagPriority ou o parâmetro MemoryFlags for zero, esse parâmetro será ignorado.

[in] MemoryFlags

Um conjunto de sinalizadores que especificam o tipo de memória a ser livre. Esse valor deve ser zero se a memória foi alocada com NdisAllocateMemoryWithTagPriority. Com o NDIS 6.0 e versões posteriores, o NdisAllocateMemoryWithTagPriority é sempre usado para alocar memória.

Valor de retorno

Nenhum

Observações

Como memória não armazenada em cache e memória contígua raramente são liberadas até que o driver de miniporto alocador esteja descarregando, um chamador de NdisFreeMemory geralmente está em execução em IRQL = PASSIVE_LEVEL para esses tipos de desalocações. Em qualquer caso:

  • Ao liberar memória contígua, um chamador de NdisFreeMemory deve estar em execução em IRQL = PASSIVE_LEVEL.
  • Ao liberar memória não em cache, um chamador de NdisFreeMemory deve estar em execução no < DISPATCH_LEVEL IRQL.
  • Ao liberar memória que não seja contígua nem não armazenada em cache, um chamador de NdisFreeMemory deve estar em execução no IRQL <= DISPATCH_LEVEL.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisFreeMemory (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisFreeMemory (NDIS 5.1)) no Windows XP.
da Plataforma de Destino Universal
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL Consulte a seção Comentários
regras de conformidade de DDI Irql_Miscellaneous_Function(ndis), NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis)

Consulte também

MiniportHaltEx

NdisAllocateMemoryWithTagPriority