FSCTL_REQUEST_OPLOCK 제어 코드
FSCTL_REQUEST_OPLOCK 제어 코드는 파일에 대한 기회 잠금(oplock)을 요청하거나 oplock 중단이 발생했음을 인정합니다.
기회 잠금에 대한 자세한 내용은 Windows 데스크톱 설명서의 기회 잠금 을 참조하세요. 사용자 모드 OPLOCK 컨트롤에 대한 자세한 내용은 Windows 데스크톱 설명서의 파일 관리 제어 코드를 참조하세요.
이 제어 코드를 처리하기 위해 파일 시스템 또는 필터 드라이버는 다음 매개 변수를 사용하여 FsRtlOplockFsctrlEx 를 호출합니다.
매개 변수
Oplock: 파일에 대한 불투명 불투명 개체 포인터입니다.
Irp: IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 요청에 대한 IRP에 대한 포인터입니다. 작업에 대한 FsControlCode 매개 변수는 FSCTL_REQUEST_OPLOCK 합니다.
OpenCount: 단독 oplock에 대한 요청인 경우 파일에 대한 사용자 핸들 수입니다. 공유될 수 있는 oplock에 대한 요청인 경우 파일에 바이트 범위 잠금이 없으면 OpenCount 는 0입니다. 그렇지 않으면 OpenCount 가 0이 아닌 값입니다. 호출자는 IRP에서 FsRtlOplockIsSharedRequest 루틴을 호출하여 요청이 공유할 수 있는 oplock에 대한 것인지 확인할 수 있습니다.
플래그: 연결된 oplock 작업에 대한 비트 마스크입니다. 파일 시스템 또는 필터 드라이버는 비트를 설정하여 FsRtlOplockFsctrlEx의 동작을 지정합니다. Flags 매개 변수에는 다음과 같은 옵션이 있습니다.
값 의미 OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH(0x00000001) 파일 시스템에서 현재 열려 있는 모든 핸들에서 모든 기회 잠금 키가 일치하는지 확인했음을 지정합니다. 이 플래그를 지정하면 oplock 패키지는 파일에 열려 있는 핸들이 두 개 이상 있는 경우 RW 또는 RWH 수준의 oplock을 부여할 수 있습니다. oplock 형식에 대한 자세한 내용은 개요를 참조 하세요.
상태 블록
FsRtlOplockFsctrlEx는 이 작업에 대해 다음 NTSTATUS 값 중 하나를 반환합니다.
코드 | 의미 |
---|---|
STATUS_PENDING | oplock이 부여되었습니다. 성공 코드입니다. |
STATUS_CANCELLED | FSCTL_REQUEST_OPLOCK 작업이 완료되기 전에 IRP가 취소되었습니다. 오류 코드입니다. |
STATUS_OPLOCK_NOT_GRANTED | oplock을 부여할 수 없습니다. 오류 코드입니다. |
요구 사항
요구 사항 유형 | 요구 사항 |
---|---|
헤더 | Ntifs.h ( Ntifs.h 또는 Fltkernel.h 포함) |