Share via


FlushViewOfFile 函式 (memoryapi.h)

寫入檔案對應檢視內的位元組範圍磁碟。

語法

BOOL FlushViewOfFile(
  [in] LPCVOID lpBaseAddress,
  [in] SIZE_T  dwNumberOfBytesToFlush
);

參數

[in] lpBaseAddress

要排清至對應檔案之磁碟表示之位元組範圍的基地址指標。

[in] dwNumberOfBytesToFlush

要排清的位元組數目。 如果 dwNumberOfBytesToFlush 為零,則會從基位址排清檔案到對應結尾。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

排清對應檢視的範圍會起始將該範圍內已變更的頁面寫入磁碟。 已變更的頁面是自從對應檔案檢視后的內容已變更的頁面。 FlushViewOfFile 函式不會排清檔案元數據,而且在從基礎硬體磁碟快取排清變更並實際寫入磁碟之前,不會等待傳回。 若要排清所有已變更的頁面加上檔案的元數據,並確定它們實際寫入磁碟,請呼叫 FlushViewOfFile ,然後呼叫 FlushFileBuffers 函式。

透過網路排清記憶體對應檔案時, FlushViewOfFile 可確保數據已從本機電腦寫入,但數據不在遠端電腦上。 伺服器可以在遠端快取數據。 因此, FlushViewOfFile 可以在數據實際寫入磁碟之前傳回。

透過對應檢視修改檔案時,可能不會自動更新上次修改時間戳。 如有需要,呼叫端應該使用 SetFileTime 來設定時間戳。

在 Windows Server 2012 中,下列技術支援此函式。

技術 支援
伺服器消息塊 (SMB) 3.0 通訊協定 Yes
SMB 3.0 透明故障轉移 (TFO) Yes
具有向外延展檔案共用的SMB 3.0 (SO) Yes
叢集共用磁碟區文件系統 (CsvFS) Yes
彈性檔案系統 (ReFS) Yes
 

當 CSVF 暫停時,此呼叫可能會失敗,並出現錯誤,指出發生鎖定衝突。

範例

如需範例,請參閱 從檔案檢視讀取和寫入

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 memoryapi.h (包括 Windows.h、Memoryapi.h)
程式庫 onecore.lib
DLL Kernel32.dll

另請參閱

CreateFile

建立檔案檢視

檔案對應函式

MapViewOfFile

UnmapViewOfFile