Função UnmapViewOfFile (memoryapi.h)

Descompacta 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 a função MapViewOfFile ou MapViewOfFileEx .

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

Descompactar 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 compartilhamento 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 chegue a zero ou, em outras palavras, até que sejam não mapeadas ou cortadas dos conjuntos de trabalho de todos os processos que compartilham as páginas. Mesmo assim, as páginas modificadas são gravadas "preguiçosamente" no disco; ou seja, as modificações podem ser armazenadas em cache na memória e gravadas em disco posteriormente. Para minimizar o risco de perda de dados no caso de uma falha de energia ou uma falha no 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 (Bloco de Mensagens do Servidor) 3.0 Yes
TFO (Failover Transparente) SMB 3.0 Yes
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Yes
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) Yes
ReFS (Sistema de Arquivos Resiliente) Sim
 

Exemplos

Para obter um exemplo, consulte Criando um modo de 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