FlushViewOfFile-Funktion (memoryapi.h)
Schreibt auf den Datenträger einen Bytebereich innerhalb einer zugeordneten Ansicht einer Datei.
Syntax
BOOL FlushViewOfFile(
[in] LPCVOID lpBaseAddress,
[in] SIZE_T dwNumberOfBytesToFlush
);
Parameter
[in] lpBaseAddress
Ein Zeiger auf die Basisadresse des Bytebereichs, der auf die Datenträgerdarstellung der zugeordneten Datei geleert werden soll.
[in] dwNumberOfBytesToFlush
Die Anzahl der Bytes, die geleert werden sollen. Wenn dwNumberOfBytesToFlush null ist, wird die Datei von der Basisadresse an das Ende der Zuordnung geleert.
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
Das Leeren eines Bereichs einer zugeordneten Ansicht initiiert das Schreiben von modifiziert Seiten innerhalb dieses Bereichs auf den Datenträger. Dirty Pages sind Solche, deren Inhalt sich seit der Zuordnung der Dateiansicht geändert hat. Die FlushViewOfFile-Funktion leert die Dateimetadaten nicht und wartet nicht auf die Rückgabe, bis die Änderungen aus dem zugrunde liegenden Hardwaredatenträgercache geleert und physisch auf den Datenträger geschrieben werden. Um alle modifiziert Seiten sowie die Metadaten für die Datei zu leeren und sicherzustellen, dass sie physisch auf den Datenträger geschrieben werden, rufen Sie FlushViewOfFile auf, und rufen Sie dann die FlushFileBuffers-Funktion auf.
Beim Leeren einer im Arbeitsspeicher zugeordneten Datei über ein Netzwerk garantiert FlushViewOfFile , dass die Daten vom lokalen Computer geschrieben wurden, aber nicht, dass sich die Daten auf dem Remotecomputer befinden. Der Server kann die Daten auf der Remoteseite zwischenspeichern. Daher kann FlushViewOfFile zurückgeben, bevor die Daten physisch auf den Datenträger geschrieben wurden.
Wenn Sie eine Datei über eine zugeordnete Ansicht ändern, wird der Zeitstempel der letzten Änderung möglicherweise nicht automatisch aktualisiert. Bei Bedarf sollte der Aufrufer SetFileTime verwenden, um den Zeitstempel festzulegen.
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 |
Wenn CsvFs angehalten wird, schlägt dieser Aufruf möglicherweise mit einem Fehler fehl, der darauf hinweist, dass ein Sperrkonflikt vorliegt.
Beispiele
Ein Beispiel finden Sie unter Lesen und Schreiben aus einer Dateiansicht.
Anforderungen
Anforderung | Wert |
---|---|
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 |