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