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