다음을 통해 공유


FSCTL_REQUEST_OPLOCK_LEVEL_2 IOCTL(winioctl.h)

파일에 대해 수준 2 편의적 잠금을 요청합니다.

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

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

설명

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

새 oplock 형식이 필요한 경우 핸들을 닫고 CreateFile을 사용하여 새 핸들을 다시 열어야 하며, 원하는 FSCTL_REQUEST_OPLOCK_XXX 제어 코드를 사용하여 새 핸들에서 DeviceIoControl을 호출해야 합니다. oplock 형식이 변경될 수 있는 핸들에 대한 oplock을 요청하려면(핸들을 닫고 다시 열 필요가 없음) FSCTL_REQUEST_OPLOCK 제어 코드를 사용합니다.

FSCTL_REQUEST_OPLOCK_LEVEL_2 사용하여 파일에 대한 수준 2 기회 잠금을 요청합니다. 클라이언트 파일 시스템은 수준 2 잠금이 유지되는 한 읽기 데이터를 로컬로 캐시할 수 있지만 쓰기 데이터는 캐시할 수 없습니다.

파일 시스템은 잠금이 끊어질 때 수준 2 기회 잠금을 요청한 애플리케이션의 승인이 필요하지 않습니다. 잠금이 끊어진 후 네트워크 리디렉터에 파일에서 캐시된 데이터가 유효한 것으로 간주되지 않는다는 알림이 표시됩니다. 자세한 내용은 호환성이 손상되는 Oplock을 참조하세요.

자세한 내용은 기회 잠금 유형을 참조하세요.

다양한 oplock 컨트롤 코드를 비교하려면 FSCTL_REQUEST_OPLOCK.

파일이 오버랩되지 않은(동기) 모드로 열리면 FSCTL_REQUEST_OPLOCK_LEVEL_2 제어 코드가 실패합니다.

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

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 포함)

추가 정보