Associates a virtual address range with the specified file handle. This indicates that the kernel should optimize any further asynchronous I/O requests with overlapped structures inside this range. The overlapped range is locked in memory, and then unlocked when the file is closed. After a range is associated with a file handle, it cannot be disassociated.
BOOL SetFileIoOverlappedRange( HANDLE FileHandle, PUCHAR OverlappedRangeStart, ULONG Length );
A handle to the file.
This file handle must be opened with FILE_READ_ATTRIBUTES access rights.
The starting address for the range.
The length of the range, in bytes.
Returns nonzero if successful or zero otherwise.
To get extended error information, call GetLastError.
SetFileIoOverlappedRange can be used to improve performance in an application that issues a high number of asynchronous unbuffered I/O and uses a defined range of overlapped structures. Because this range of structures is locked in memory, the kernel can avoid acquiring certain locks when updating the overlapped structures with the results of the I/O request.
SetFileIoOverlappedRange requires the caller to have the SeLockMemoryPrivilege access privilege.
This function has no effect on buffered and synchronous I/O.
In Windows 8 and Windows Server 2012, this function is supported by the following technologies.
|Server Message Block (SMB) 3.0 protocol||Yes|
|SMB 3.0 Transparent Failover (TFO)||Yes|
|SMB 3.0 with Scale-out File Shares (SO)||Yes|
|Cluster Shared Volume File System (CsvFS)||Yes|
|Resilient File System (ReFS)||Yes|
|Minimum supported client||Windows Vista [desktop apps only]|
|Minimum supported server||Windows Server 2008 [desktop apps only]|
|Header||fileapi.h (include Windows.h, WinBase.h)|