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

另請參閱

檔案管理功能