다음을 통해 공유


FSCTL_OPLOCK_BREAK_ACK_NO_2 IOCTL(winioctl.h)

파일에 대한 편의적 잠금이 곧 중단된다는 알림에 응답합니다. 이 작업을 사용하여 파일에 대한 모든 편의적 잠금을 해제하고 파일을 열어 둡니다.

이 작업을 수행하려면 다음 매개 변수를 사용하여 DeviceIoControl 함수를 호출합니다.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_OPLOCK_BREAK_ACK_NO_2,      // dwIoControlCode
  NULL,                             // lpInBuffer
  0,                                // nInBufferSize
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

설명

이 작업은 로컬 서버에서 기회 잠금을 요청한 클라이언트 애플리케이션에서만 사용됩니다. 원격 서버에서 기회 잠금을 요청하는 클라이언트 애플리케이션은 직접 요청해서는 안 됩니다. 네트워크 리 리디렉션기는 애플리케이션에 대한 기회 잠금을 투명하게 요청합니다.

이 작업에 겹치는 I/O의 의미는 DeviceIoControl 항목의 설명 섹션을 참조하세요.

파일에 대한 기회 잠금이 끊어질 것이라는 알림을 받으면 FSCTL_OPLOCK_BREAK_ACK_NO_2 제어 코드를 사용하여 기회 잠금을 포기하지만 파일을 열어 둘 계획임을 서버에 표시합니다. 작업이 ERROR_IO_PENDING 오류 코드를 반환하는 경우 서버에서 파일에 수준 2 잠금을 부여했습니다.

FSCTL_OPLOCK_BREAK_ACK_NO_2 사용하는 한 가지 대안은 애플리케이션이 파일을 닫을 것임을 나타내는 것입니다. 이 응답에 FSCTL_OPBATCH_ACK_CLOSE_PENDING 제어 코드를 사용합니다.

잠금이 손상되는 경우 사용되는 또 다른 대안은 파일이 대신 수준 2 기회 잠금을 받아야 함을 나타내는 것입니다. 이 응답에 FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 제어 코드를 사용합니다.

기회 잠금이 손상된 파일과 연결된 OVERLAPPED 구조체의 hEvent 멤버를 사용하여 기회 잠금이 끊어졌다는 알림이 애플리케이션에 표시됩니다. 애플리케이션은 GetOverlappedResultHasOverlappedIoCompleted와 같은 함수를 사용할 수도 있습니다.

Windows 8 및 Windows Server 2012 이 코드는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 No
SMB 3.0 TFO(투명 장애 조치(failover)) No
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System) Yes

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winioctl.h(Windows.h 포함)

추가 정보