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 和同步 I/O 没有影响。
在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。
技术 | 支持 |
---|---|
服务器消息块 (SMB) 3.0 协议 | 是 |
SMB 3.0 透明故障转移 (TFO) | 是 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 是 |
群集共享卷文件系统 (CSV) | 是 |
弹性文件系统 (ReFS) | 是 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | fileapi.h (包括 Windows.h、WinBase.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |