Compartilhar 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 deverá ser zero se a memória tiver sido alocada com NdisAllocateMemoryWithTagPriority. Com o NDIS 6.0 e versões posteriores, o NdisAllocateMemoryWithTagPriority é sempre usado para alocar memória.

Retornar valor

Nenhum

Comentários

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 sendo descarregado, um chamador de NdisFreeMemory geralmente está em execução em IRQL = PASSIVE_LEVEL para esses tipos de desalocações. De qualquer forma:

  • 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 cache, um chamador de NdisFreeMemory deve estar em execução no IRQL < DISPATCH_LEVEL.
  • Ao liberar memória que não é contígua nem não armazenada em cache, um chamador de NdisFreeMemory deve estar em execução no IRQL <= DISPATCH_LEVEL.

Requisitos

Requisito Valor
Cliente mínimo com suporte 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.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL Consulte a seção Comentários
Regras de conformidade da DDI Irql_Miscellaneous_Function(ndis), NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis)

Confira também

MiniportHaltEx

NdisAllocateMemoryWithTagPriority