Función NdisFreeMemory (ndis.h)

La función NdisFreeMemory libera un bloque de memoria que se asignó anteriormente con la función NdisAllocateMemoryWithTagPriority .

Sintaxis

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

Parámetros

[in] VirtualAddress

Puntero a la dirección virtual base de la memoria asignada. La función NdisAllocateMemoryWithTagPriority devolvió esta dirección.

[in] Length

Tamaño, en bytes, del bloque de memoria que se va a liberar. Si la memoria se asignó con NdisAllocateMemoryWithTagPriority o el parámetro MemoryFlags es cero, este parámetro se omite.

[in] MemoryFlags

Conjunto de marcas que especifican el tipo de memoria que se va a liberar. Este valor debe ser cero si la memoria se asignó con NdisAllocateMemoryWithTagPriority. Con NDIS 6.0 y versiones posteriores, NdisAllocateMemoryWithTagPriority siempre se usa para asignar memoria.

Valor devuelto

None

Observaciones

Dado que la memoria no almacenada en caché y la memoria contigua rara vez se liberan hasta que el controlador de miniporte asignado se descarga, un llamador de NdisFreeMemory normalmente se ejecuta en IRQL = PASSIVE_LEVEL para estos tipos de desasignaciones. En cualquier caso:

  • Al liberar memoria contigua, un llamador de NdisFreeMemory debe ejecutarse en IRQL = PASSIVE_LEVEL.
  • Al liberar memoria no almacenada en caché, un llamador de NdisFreeMemory debe ejecutarse en irQL < DISPATCH_LEVEL.
  • Al liberar memoria que no sea contigua ni no almacenada en caché, un autor de llamada de NdisFreeMemory debe ejecutarse en IRQL <= DISPATCH_LEVEL.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con controladores NDIS 6.0 y NDIS 5.1 (consulte NdisFreeMemory (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte NdisFreeMemory (NDIS 5.1)) en Windows XP.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL Consulte la sección Comentarios.
Reglas de cumplimiento de DDI Irql_Miscellaneous_Function(ndis),NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis)

Consulte también

MiniportHaltEx

NdisAllocateMemoryWithTagPriority