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


Функция UnlockFile (fileapi.h)

Разблокирует регион в открытом файле. Разблокировка региона позволяет другим процессам получить доступ к региону.

Для альтернативного способа указания региона используйте функцию UnlockFileEx .

Синтаксис

BOOL UnlockFile(
  [in] HANDLE hFile,
  [in] DWORD  dwFileOffsetLow,
  [in] DWORD  dwFileOffsetHigh,
  [in] DWORD  nNumberOfBytesToUnlockLow,
  [in] DWORD  nNumberOfBytesToUnlockHigh
);

Параметры

[in] hFile

Дескриптор файла, содержащего область, заблокированную с помощью LockFile. Дескриптор файла должен быть создан с правом доступа GENERIC_READ или GENERIC_WRITE . Дополнительные сведения см. в разделе Безопасность файлов и права доступа.

[in] dwFileOffsetLow

Слово нижнего порядка начального смещения байтов в файле, где начинается заблокированная область.

[in] dwFileOffsetHigh

Слово высокого порядка для смещения начального байта в файле, где начинается заблокированная область.

[in] nNumberOfBytesToUnlockLow

Слово нижнего порядка длины разблокированного диапазона байтов.

[in] nNumberOfBytesToUnlockHigh

Слово высокого порядка длины разблокированного диапазона байтов.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Эта функция всегда работает синхронно, но может не ставить запись завершения в очередь, если с дескриптором файла связан порт завершения.

Разблокировка области файла освобождает ранее полученную блокировку файла. Регион для разблокировки должен точно соответствовать существующему заблокированному региону. Две смежные области файла нельзя заблокировать отдельно, а затем разблокировать с помощью одного региона, охватывающего оба заблокированных региона.

Если процесс завершается блокировкой части файла или закрывает файл с незакрытыми блокировками, блокировки разблокируются операционной системой. Однако время, необходимое операционной системе для разблокировки этих блокировок, зависит от доступных системных ресурсов. Поэтому рекомендуется явно разблокировать все заблокированные файлы при завершении процесса. Если этого не сделать, доступ к этим файлам может быть запрещен, если операционная система еще не разблокировала их.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header fileapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Блокировка и разблокировка диапазонов байтов в файлах

CreateFile

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

LockFile

UnlockFileEx