SetFileIoOverlappedRange 函式 (fileapi.h)

將虛擬位址範圍與指定的檔案句柄產生關聯。 這表示核心應該將此範圍內具有重疊結構的任何進一步異步 I/O 要求優化。 重疊的範圍會在記憶體中鎖定,然後在檔案關閉時解除鎖定。 當某個範圍與檔案句柄相關聯之後,就無法解除關聯。

語法

BOOL SetFileIoOverlappedRange(
  [in] HANDLE FileHandle,
  [in] PUCHAR OverlappedRangeStart,
  [in] ULONG  Length
);

參數

[in] FileHandle

檔案的句柄。

此檔案句柄必須以 FILE_READ_ATTRIBUTES 訪問許可權開啟。

[in] OverlappedRangeStart

範圍的起始位址。

[in] Length

範圍的長度,以位元組為單位。

傳回值

如果成功或零,則傳回非零。

若要取得擴充的錯誤資訊,請呼叫 GetLastError。

備註

SetFileIoOverlappedRange 可用來改善應用程式中發出大量異步未緩衝 I/O 的效能,並使用已定義的重疊結構範圍。 由於此範圍的結構鎖定在記憶體中,因此在更新重疊結構時,核心可以避免在以 I/O 要求的結果更新重疊結構時取得特定鎖定。

SetFileIoOverlappedRange 需要呼叫端具有 SeLockMemoryPrivilege 訪問許可權。

此函式不會影響緩衝和同步 I/O。

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

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

規格需求

需求 值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 fileapi.h (包括 Windows.h、WinBase.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

檔案管理功能