Функция SetFileIoOverlappedRange (fileapi.h)
Связывает диапазон виртуальных адресов с указанным дескриптором файла. Это означает, что ядро должно оптимизировать все дальнейшие асинхронные запросы ввода-вывода с перекрывающимися структурами внутри этого диапазона. Перекрываемый диапазон блокируется в памяти, а затем разблокируется при закрытии файла. После того как диапазон связан с дескриптором файла, его невозможно отменить.
Синтаксис
BOOL SetFileIoOverlappedRange(
[in] HANDLE FileHandle,
[in] PUCHAR OverlappedRangeStart,
[in] ULONG Length
);
Параметры
[in] FileHandle
Дескриптор файла.
Этот дескриптор файла должен быть открыт с FILE_READ_ATTRIBUTES правами доступа.
[in] OverlappedRangeStart
Начальный адрес диапазона.
[in] Length
Длина диапазона в байтах.
Возвращаемое значение
Возвращает ненулевое значение при успешном выполнении или нулевое значение в противном случае.
Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
SetFileIoOverlappedRange можно использовать для повышения производительности в приложении, которое выдает большое количество асинхронных небуферированных операций ввода-вывода и использует определенный диапазон перекрывающихся структур. Так как этот диапазон структур заблокирован в памяти, ядро может избежать получения определенных блокировок при обновлении перекрывающихся структур с результатами запроса ввода-вывода.
SetFileIoOverlappedRange требует, чтобы вызывающий объект был иметь привилегию доступа SeLockMemoryPrivilege .
Эта функция не влияет на буферизированные и синхронные операции ввода-вывода.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технология | Поддерживается |
---|---|
Протокол SMB 3.0 | Да |
SMB 3.0 Transparent Failover (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Да |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | fileapi.h (включая Windows.h, WinBase.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |