Função FlushViewOfFile (memoryapi.h)

Grava no disco um intervalo de bytes dentro de uma exibição mapeada de um arquivo.

Sintaxe

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

Parâmetros

[in] lpBaseAddress

Um ponteiro para o endereço base do intervalo de bytes a ser liberado para a representação em disco do arquivo mapeado.

[in] dwNumberOfBytesToFlush

O número de bytes a serem liberados. Se dwNumberOfBytesToFlush for zero, o arquivo será liberado do endereço base até o final do mapeamento.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A liberação de um intervalo de uma exibição mapeada inicia a gravação de sujo páginas dentro desse intervalo para o disco. Páginas sujas são aquelas cujo conteúdo foi alterado desde que o modo de exibição de arquivo foi mapeado. A função FlushViewOfFile não libera os metadados do arquivo e não aguarda o retorno até que as alterações sejam liberadas do cache de disco de hardware subjacente e gravadas fisicamente no disco. Para liberar todas as páginas sujo mais os metadados do arquivo e garantir que elas sejam gravadas fisicamente no disco, chame FlushViewOfFile e chame a função FlushFileBuffers.

Ao liberar um arquivo mapeado em memória em uma rede, FlushViewOfFile garante que os dados foram gravados do computador local, mas não que os dados residam no computador remoto. O servidor pode armazenar os dados em cache no lado remoto. Portanto, FlushViewOfFile pode retornar antes que os dados sejam gravados fisicamente no disco.

Ao modificar um arquivo por meio de uma exibição mapeada, o carimbo de data/hora da última modificação pode não ser atualizado automaticamente. Se necessário, o chamador deve usar SetFileTime para definir o carimbo de data/hora.

Em Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
TFO (Failover transparente) do SMB 3.0 Sim
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Sim
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

Quando csvFs é pausado, essa chamada pode falhar com um erro indicando que há um conflito de bloqueio.

Exemplos

Para obter um exemplo, consulte Leitura e gravação de um modo de exibição de arquivo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho memoryapi.h (inclua Windows.h, Memoryapi.h)
Biblioteca onecore.lib
DLL Kernel32.dll

Confira também

CreateFile

Criando uma exibição de arquivo

Funções de mapeamento de arquivo

Mapviewoffile

Unmapviewoffile