Поделиться через


Функция 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

См. также

Функции управления файлами