UnmapViewOfFile 函式 (memoryapi.h)
從呼叫進程的位址空間取消對應檔案的對應檢視。
語法
BOOL UnmapViewOfFile(
[in] LPCVOID lpBaseAddress
);
參數
[in] lpBaseAddress
要取消對應的檔案對應檢視之基位址的指標。 這個值必須與先前呼叫 MapViewOfFile 系列中其中一個函式所傳回的值相同。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
取消對應檔案的對應檢視會使進程位址空間中檢視所佔用的範圍失效,並讓該範圍可供其他配置使用。 它會移除屬於進程工作集一部分之每個未對應的虛擬頁面的工作集專案,並減少進程的工作集大小。 它也會遞減對應實體頁面的共享計數。
在未對應的檢視中修改的頁面不會寫入磁碟,直到其共用計數達到零,或者,直到它們從共用頁面的所有進程的工作集取消對應或修剪為止。 即使如此,修改過的頁面也會「延遲」寫入磁碟;也就是說,修改可能會在記憶體中快取,並在稍後寫入磁碟。 若要將發生電源故障或系統當機時數據遺失的風險降到最低,應用程式應該使用 FlushViewOfFile 函式明確排清修改的頁面。
雖然應用程式可能會關閉用來建立檔案對應物件的檔句柄,但系統會將對應的檔案保留為開啟狀態,直到檔案的最後一個檢視未對應為止。 尚未取消對應最後一個檢視的檔案會保持開啟狀態,且沒有共用限制。
在 Windows Server 2012 中,下列技術支援此函式。
技術 | 支援 |
---|---|
伺服器消息塊 (SMB) 3.0 通訊協定 | Yes |
SMB 3.0 透明故障轉移 (TFO) | Yes |
具有向外延展檔案共用的SMB 3.0 (SO) | Yes |
叢集共用磁碟區文件系統 (CsvFS) | Yes |
彈性檔案系統 (ReFS) | 是 |
範例
如需範例,請參閱 在檔案中建立檢視。
規格需求
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | memoryapi.h (包括 Windows.h、Memoryapi.h) |
程式庫 | onecore.lib |
DLL | Kernel32.dll |
另請參閱
記憶體管理函式