다음을 통해 공유


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

추가 정보

FsRtlOplockFsctrlEx

FsRtlOplockIsSharedRequest

IRP_MJ_FILE_SYSTEM_CONTROL