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
잠금 해제할 바이트 범위 길이의 상위 단어입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
이 함수는 항상 동기적으로 작동하지만 완료 포트가 파일 핸들과 연결된 경우 완료 항목을 큐에 대기하지 않을 수 있습니다.
파일 영역의 잠금을 해제하면 이전에 획득한 파일 잠금이 해제됩니다. 잠금 해제할 지역은 기존 잠긴 지역과 정확히 일치해야 합니다. 파일의 인접한 두 영역을 별도로 잠근 다음 잠긴 두 지역에 걸쳐 있는 단일 지역을 사용하여 잠금 해제할 수 없습니다.
프로세스가 잠긴 파일의 일부로 종료되거나 미해결 잠금이 있는 파일을 닫으면 운영 체제에서 잠금이 잠금 해제됩니다. 그러나 운영 체제에서 이러한 잠금을 해제하는 데 걸리는 시간은 사용 가능한 시스템 리소스에 따라 달라집니다. 따라서 프로세스가 종료되면 잠긴 모든 파일의 잠금을 명시적으로 해제하는 것이 좋습니다. 이 작업을 수행하지 않으면 운영 체제에서 아직 잠금을 해제하지 않은 경우 이러한 파일에 대한 액세스가 거부될 수 있습니다.
Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | Yes |
SMB 3.0 TFO(투명 장애 조치(failover)) | Yes |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | Yes |
CsvFS(클러스터 공유 볼륨 파일 시스템) | Yes |
ReFS(Resilient File System) | Yes |
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | fileapi.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |