Função UnmapViewOfFile (memoryapi.h)
Desmapeia uma exibição mapeada de um arquivo do espaço de endereço do processo de chamada.
Sintaxe
BOOL UnmapViewOfFile(
[in] LPCVOID lpBaseAddress
);
Parâmetros
[in] lpBaseAddress
Um ponteiro para o endereço base da exibição mapeada de um arquivo que deve ser não mapeado. Esse valor deve ser idêntico ao valor retornado por uma chamada anterior para uma das funções na família MapViewOfFile .
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
Desmapear uma exibição mapeada de um arquivo invalida o intervalo ocupado pela exibição no espaço de endereço do processo e disponibiliza o intervalo para outras alocações. Ele remove a entrada do conjunto de trabalho para cada página virtual não mapeada que fazia parte do conjunto de trabalho do processo e reduz o tamanho do conjunto de trabalho do processo. Ele também diminui a contagem de compartilhamentos da página física correspondente.
As páginas modificadas no modo de exibição não mapeado não são gravadas no disco até que a contagem de compartilhamentos atinja zero ou, em outras palavras, até que elas sejam desmapeadas ou cortadas dos conjuntos de trabalho de todos os processos que compartilham as páginas. Mesmo assim, as páginas modificadas são gravadas "lentamente" no disco; ou seja, as modificações podem ser armazenadas em cache na memória e gravadas no disco posteriormente. Para minimizar o risco de perda de dados em caso de falha de energia ou falha do sistema, os aplicativos devem liberar explicitamente páginas modificadas usando a função FlushViewOfFile .
Embora um aplicativo possa fechar o identificador de arquivo usado para criar um objeto de mapeamento de arquivo, o sistema mantém o arquivo correspondente aberto até que a última exibição do arquivo seja não mapeada. Os arquivos para os quais a última exibição ainda não foi mapeada são mantidos abertos sem restrições de compartilhamento.
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 |
Exemplos
Para obter um exemplo, consulte Criando uma exibição dentro de um arquivo.
Requisitos
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
Fechando um objeto de mapeamento de arquivo
Funções de mapeamento de arquivo
Funções de gerenciamento da memória