Compartir a través de


Liberar memoria virtual

La función VirtualFree descommite y libera páginas según las reglas siguientes:

  • Descommite una o varias páginas confirmadas, cambiando el estado de las páginas a reservadas. La descomsignación de páginas libera el almacenamiento físico asociado a las páginas, lo que hace que esté disponible para que cualquier proceso lo asigne. Se puede descommitr cualquier bloque de páginas confirmadas.
  • Libera un bloque de una o varias páginas reservadas, cambiando el estado de las páginas para liberarse. Liberar un bloque de páginas hace que el proceso asigne el intervalo de direcciones reservadas. Las páginas reservadas solo se pueden liberar liberando todo el bloque reservado inicialmente por VirtualAlloc.
  • Descommite y libera un bloque de una o varias páginas confirmadas simultáneamente, cambiando el estado de las páginas para liberarse. El bloque especificado debe incluir el bloque completo reservado inicialmente por VirtualAlloc y todas las páginas deben confirmarse actualmente.

Una vez liberado o descommitido un bloque de memoria, nunca puede volver a hacer referencia a él. Cualquier información que pueda haber estado en esa memoria se ha ido para siempre. Si se intenta leer o escribir en una página gratuita, se produce una excepción de infracción de acceso. Si necesita información, no descommita ni libere memoria que contenga esa información.

Para especificar que los datos de un intervalo de memoria ya no son de interés, llame a VirtualAlloc con MEM_RESET. Las páginas no se leerán ni se escribirán en el archivo de paginación. Sin embargo, el bloque de memoria se puede volver a usar más tarde.