Fonction UnmapViewOfFile (memoryapi.h)
Annule le mappage d’une vue mappée d’un fichier à partir de l’espace d’adressage du processus appelant.
Syntaxe
BOOL UnmapViewOfFile(
[in] LPCVOID lpBaseAddress
);
Paramètres
[in] lpBaseAddress
Pointeur vers l’adresse de base de la vue mappée d’un fichier qui doit être décompressé. Cette valeur doit être identique à la valeur retournée par un appel précédent à l’une des fonctions de la famille MapViewOfFile .
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Le fait de ne pas mapper une vue mappée d’un fichier invalide la plage occupée par la vue dans l’espace d’adressage du processus et rend la plage disponible pour d’autres allocations. Il supprime l’entrée d’ensemble de travail pour chaque page virtuelle non maappée qui faisait partie de l’ensemble de travail du processus et réduit la taille de l’ensemble de travail du processus. Il décrémente également le nombre de partages de la page physique correspondante.
Les pages modifiées dans l’affichage non mappé ne sont pas écrites sur le disque tant que leur nombre de partages n’a pas atteint zéro, ou, en d’autres termes, tant qu’elles ne sont pas supprimées ou supprimées des ensembles de travail de tous les processus qui partagent les pages. Même dans ce cas, les pages modifiées sont écrites « paresseusement » sur le disque ; Autrement dit, les modifications peuvent être mises en cache en mémoire et écrites sur le disque ultérieurement. Pour réduire le risque de perte de données en cas de panne d’alimentation ou d’incident système, les applications doivent vider explicitement les pages modifiées à l’aide de la fonction FlushViewOfFile .
Bien qu’une application puisse fermer le handle de fichier utilisé pour créer un objet de mappage de fichiers, le système maintient le fichier correspondant ouvert jusqu’à ce que la dernière vue du fichier soit décompressée. Les fichiers pour lesquels la dernière vue n’a pas encore été démapped sont conservés ouverts sans aucune restriction de partage.
Dans Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.
Technologie | Prise en charge |
---|---|
Protocole Server Message Block (SMB) 3.0 | Oui |
Basculement transparent SMB 3.0 (TFO) | Oui |
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) | Oui |
Système de fichiers du volume partagé de cluster (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
Exemples
Pour obtenir un exemple, consultez Création d’une vue dans un fichier.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | memoryapi.h (inclure Windows.h, Memoryapi.h) |
Bibliothèque | onecore.lib |
DLL | Kernel32.dll |
Voir aussi
Fermeture d’un objet de mappage de fichiers
Fonctions de mappage de fichiers
Fonctions de gestion de la mémoire