Función UnmapViewOfFile (memoryapi.h)
Desasigna una vista asignada de un archivo del espacio de direcciones del proceso de llamada.
Sintaxis
BOOL UnmapViewOfFile(
[in] LPCVOID lpBaseAddress
);
Parámetros
[in] lpBaseAddress
Puntero a la dirección base de la vista asignada de un archivo que se va a desasignar. Este valor debe ser idéntico al valor devuelto por una llamada anterior a una de las funciones de la familia MapViewOfFile .
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
Al desasignar una vista asignada de un archivo, se invalida el intervalo ocupado por la vista en el espacio de direcciones del proceso y se pone el intervalo disponible para otras asignaciones. Quita la entrada del conjunto de trabajo para cada página virtual no asignada que formaba parte del conjunto de trabajo del proceso y reduce el tamaño del conjunto de trabajo del proceso. También disminuye el recuento de recursos compartidos de la página física correspondiente.
Las páginas modificadas de la vista no asignada no se escriben en el disco hasta que su recuento de recursos compartidos alcanza cero o, en otras palabras, hasta que no se asignan o recortan de los conjuntos de trabajo de todos los procesos que comparten las páginas. Incluso entonces, las páginas modificadas se escriben "diferir" en el disco; es decir, las modificaciones se pueden almacenar en caché en memoria y escribirse en el disco más adelante. Para minimizar el riesgo de pérdida de datos en caso de un error de alimentación o un bloqueo del sistema, las aplicaciones deben vaciar explícitamente las páginas modificadas mediante la función FlushViewOfFile .
Aunque una aplicación puede cerrar el identificador de archivo usado para crear un objeto de asignación de archivos, el sistema contiene el archivo correspondiente abierto hasta que se desasigne la última vista del archivo. Los archivos para los que la última vista aún no se ha desasignación se mantienen abiertos sin restricciones de uso compartido.
En Windows Server 2012, esta función es compatible con las siguientes tecnologías.
Tecnología | Compatible |
---|---|
Protocolo Bloque de mensajes del servidor (SMB) 3.0 | Sí |
Conmutación por error transparente (TFO) de SMB 3.0 | Sí |
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) | Sí |
Sistema de archivos de Volumen compartido de clúster (CsvFS) | Sí |
Sistema de archivos resistente a errores (ReFS) | Sí |
Ejemplos
Para obtener un ejemplo, vea Crear una vista dentro de un archivo.
Requisitos
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | memoryapi.h (incluye Windows.h, Memoryapi.h) |
Library | onecore.lib |
Archivo DLL | Kernel32.dll |
Vea también
Cerrar un objeto de asignación de archivos
Funciones de asignación de archivos
Funciones de administración de memoria