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 |