Поделиться через


Функция UnmapViewOfFile (memoryapi.h)

Отменяет сопоставление сопоставленного представления файла из адресного пространства вызывающего процесса.

Синтаксис

BOOL UnmapViewOfFile(
  [in] LPCVOID lpBaseAddress
);

Параметры

[in] lpBaseAddress

Указатель на базовый адрес сопоставленного представления файла, который должен быть несопоставлен. Это значение должно совпадать со значением, возвращенным при предыдущем вызове одной из функций семейства MapViewOfFile .

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Распакование сопоставленного представления файла делает недействительным диапазон, занимаемый представлением в адресном пространстве процесса, и делает диапазон доступным для других выделений. Он удаляет запись рабочего набора для каждой несопоставленной виртуальной страницы, которая была частью рабочего набора процесса, и уменьшает размер рабочего набора процесса. Он также уменьшает количество общих общей папки соответствующей физической страницы.

Измененные страницы в несопоставленном представлении не записываются на диск до тех пор, пока их количество общих файлов не достигнет нуля, или, другими словами, пока они не будут не сопоставлены или обрезаны из рабочих наборов всех процессов, которые совместно используют страницы. Даже в этом случае измененные страницы записываются "лениво" на диск; то есть изменения могут кэшироваться в памяти и записываться на диск позже. Чтобы свести к минимуму риск потери данных в случае сбоя питания или сбоя системы, приложения должны явно очистить измененные страницы с помощью функции FlushViewOfFile .

Хотя приложение может закрыть дескриптор файла, используемый для создания объекта сопоставления файлов, система держит соответствующий файл открытым до тех пор, пока не будет распаковано последнее представление файла. Файлы, для которых последнее представление еще не было распаковано, хранятся открытыми без ограничений общего доступа.

В Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

Примеры

Пример см. в разделе Создание представления в файле.

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header memoryapi.h (включая Windows.h, Memoryapi.h)
Библиотека onecore.lib
DLL Kernel32.dll

См. также

Закрытие объекта сопоставления файлов

Функции сопоставления файлов

MapViewOfFile

MapViewOfFileEx

Функции управления памятью