Compartir a través de


Función FlushViewOfFile (memoryapi.h)

Escribe en el disco un intervalo de bytes dentro de una vista asignada de un archivo.

Sintaxis

BOOL FlushViewOfFile(
  [in] LPCVOID lpBaseAddress,
  [in] SIZE_T  dwNumberOfBytesToFlush
);

Parámetros

[in] lpBaseAddress

Puntero a la dirección base del intervalo de bytes que se vacia en la representación del disco del archivo asignado.

[in] dwNumberOfBytesToFlush

Número de bytes que se van a vaciar. Si dwNumberOfBytesToFlush es cero, el archivo se vacía desde la dirección base hasta el final de la asignación.

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

El vaciado de un intervalo de una vista asignada inicia la escritura de páginas desfasadas dentro de ese intervalo en el disco. Las páginas sucias son aquellas cuyo contenido ha cambiado desde que se asignó la vista de archivo. La función FlushViewOfFile no vacía los metadatos del archivo y no espera a que se devuelvan hasta que los cambios se vacían de la caché de disco de hardware subyacente y se escriben físicamente en el disco. Para vaciar todas las páginas desfasadas más los metadatos del archivo y asegurarse de que se escriben físicamente en el disco, llame a FlushViewOfFile y, a continuación, llame a la función FlushFileBuffers .

Al vaciar un archivo asignado a memoria a través de una red, FlushViewOfFile garantiza que los datos se han escrito desde el equipo local, pero no que los datos residan en el equipo remoto. El servidor puede almacenar en caché los datos en el lado remoto. Por lo tanto, FlushViewOfFile puede devolver antes de que los datos se hayan escrito físicamente en el disco.

Al modificar un archivo a través de una vista asignada, es posible que la última marca de tiempo de modificación no se actualice automáticamente. Si es necesario, el llamador debe usar SetFileTime para establecer la marca de tiempo.

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
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)
 

Cuando csvFs está en pausa, esta llamada podría producir un error que indica que hay un conflicto de bloqueo.

Ejemplos

Para obtener un ejemplo, vea Lectura y escritura desde una vista de archivo.

Requisitos

Requisito Value
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 (incluya Windows.h, Memoryapi.h)
Library onecore.lib
Archivo DLL Kernel32.dll

Vea también

CreateFile

Crear una vista de archivo

Funciones de asignación de archivos

MapViewOfFile

UnmapViewOfFile