Share via


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

참고 항목

파일에서 바이트 범위 잠금 및 잠금 해제

CreateFile

파일 관리 함수

LockFile

UnlockFileEx