Compartilhar via


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

Mapviewoffile

MapViewOfFileEx

Funções de gerenciamento da memória