다음을 통해 공유


Oplock 동기화

배타적 기회적 잠금(oplock)을 요청하는 필터 및 파일 시스템은 시스템에서 제공하는 oplock 패키지에 대한 호출을 동기화해야 합니다. 특히 oplock을 설정하는 oplock FSCTRL 루틴 호출은 oplock 검사-중단 루틴에 대한 호출과 반드시 동기화되어야 합니다. 두 루틴 집합의 목록은 다음과 같습니다.

oplock 요청을 처리할 때 필터 및 파일 시스템은 다음을 확인해야 합니다.

  • oplock을 끊을 수 있는 I/O는 요청을 처리하는 것과 동시에 발생할 수 없습니다.
  • Oplock 요청은 oplock 중단 승인과 동시에 발생할 수 없습니다.

동일한 FCB(파일 제어 블록)에 대한 배타적 oplock 생성을 요청하는 IRP 호출은 다음과 같습니다.

다음은 oplock 동기화의 몇 가지 예입니다.

  • oplock 요청을 처리할 때 파일 시스템은 일부 리소스를 단독으로 획득하고 , FsRtlOplockFsctrlEx를 호출하고, 리소스를 해제합니다.

  • oplock 중단 승인을 처리할 때 파일 시스템은 동일한 리소스 공유를 획득하고 , FsRtlOplockFsctrlEx를 호출하고, 리소스를 해제합니다.

  • I/O를 수행할 때 파일 시스템은 동일한 리소스 공유를 획득하고 , FsRtlCheckOplockEx2를 호출하고, I/O를 수행하고, 리소스를 해제합니다.

    상위 파일 시스템은 비슷한 방식으로 FsRtlCheckUpperOplockFsRtlUpperOplockFsctrl 호출 간에 동기화되도록 해야 합니다.