UnmapViewOfFile-Funktion (memoryapi.h)
Hebt die Zuordnung einer zugeordneten Ansicht einer Datei aus dem Adressraum des aufrufenden Prozesses auf.
Syntax
BOOL UnmapViewOfFile(
[in] LPCVOID lpBaseAddress
);
Parameter
[in] lpBaseAddress
Ein Zeiger auf die Basisadresse der zugeordneten Ansicht einer Datei, die nicht zugeordnet werden soll. Dieser Wert muss mit dem Wert identisch sein, der von einem vorherigen Aufruf einer der Funktionen in der MapViewOfFile-Familie zurückgegeben wurde.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Durch das Aufheben der Zuordnung einer zugeordneten Ansicht einer Datei wird der bereich ungültig, der von der Ansicht im Adressraum des Prozesses belegt wird, und stellt den Bereich für andere Zuordnungen zur Verfügung. Es entfernt den Arbeitssatzeintrag für jede nicht zugeordnete virtuelle Seite, die Teil des Arbeitssatzes des Prozesses war, und reduziert die Arbeitssatzgröße des Prozesses. Außerdem wird die Freigabeanzahl der entsprechenden physischen Seite erhöht.
Geänderte Seiten in der nicht zugeordneten Ansicht werden erst auf den Datenträger geschrieben, wenn ihre Freigabeanzahl 0 erreicht, d. h. bis sie nicht zugeordnet oder aus den Arbeitssätzen aller Prozesse gekürzt werden, die die Seiten gemeinsam nutzen. Selbst dann werden die geänderten Seiten "lazily" auf den Datenträger geschrieben; Das heißt, Änderungen können im Arbeitsspeicher zwischengespeichert und zu einem späteren Zeitpunkt auf den Datenträger geschrieben werden. Um das Risiko eines Datenverlusts bei einem Stromausfall oder Systemabsturz zu minimieren, sollten Anwendungen geänderte Seiten mithilfe der FlushViewOfFile-Funktion explizit leeren.
Obwohl eine Anwendung das Dateihandle zum Erstellen eines Dateizuordnungsobjekts schließen kann, hält das System die entsprechende Datei geöffnet, bis die letzte Ansicht der Datei nicht zugeordnet ist. Dateien, für die die letzte Ansicht noch nicht aufgehoben wurde, werden ohne Freigabeeinschränkungen geöffnet gehalten.
In Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.
Technologie | Unterstützt |
---|---|
SMB 3.0-Protokoll (Server Message Block) | Ja |
SMB 3.0 Transparent Failover (TFO) | Ja |
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) | Ja |
Dateisystem mit freigegebenen Clustervolumes (CsvFS) | Ja |
Robustes Dateisystem (Resilient File System, ReFS) | Ja |
Beispiele
Ein Beispiel finden Sie unter Erstellen einer Ansicht in einer Datei.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | memoryapi.h (einschließlich Windows.h, Memoryapi.h) |
Bibliothek | onecore.lib |
DLL | Kernel32.dll |
Siehe auch
Schließen eines Dateizuordnungsobjekts
Speicherverwaltungsfunktionen