다음을 통해 공유


IRP_MJ_SET_INFORMATION 작업의 Oplock 상태 확인

다음 IRP_MJ_SET_INFORMATION 작업은 oplock 상태를 확인합니다.

  • 파일끝정보
  • 파일 할당 정보
  • 파일유효데이터길이정보
  • 파일 이름 변경 정보
  • 파일짧은이름정보
  • 파일링크정보
  • 파일처리정보

FileEndOfFileInformation, FileAllocationInformation 및 FileValidDataLengthInformation 작업에 대한 oplock 상태 확인

이 정보는 파일 또는 스트림에서 다음 작업을 수행할 때 적용됩니다.

  • 호출자가 스트림의 논리적 크기를 변경하려고 합니다. 캐시 관리자의 지연 기록기 스레드가 파일의 끝 부분을 새로 설정하려고 할 때, oplock 검사가 수행되지 않습니다. 실제 쓰기 요청이 수신될 때 이전에 검사가 수행되기 때문입니다.

  • 호출자가 스트림의 할당된 크기를 변경하려고 시도합니다.

수준 2 요청 유형에 대한 조건

  • 항상 '없음' 상태로 전환합니다.

  • 승인이 필요하지 않습니다. 작업이 즉시 진행됩니다.

다른 모든 요청 형식에 대한 조건

  • oplock을 소유한 FILE_OBJECT와 다른 oplock 키를 가진 FILE_OBJECT에서 작업이 발생할 때 IRP_MJ_SET_INFORMATION에서 중단됩니다 (FileEndOfFileInformation, FileAllocationInformation 및 FileValidDataLengthInformation의 경우). oplock이 끊어지면 상태를 None으로 변경합니다.

  • 승인 요구 사항은 다음과 같이 다릅니다.

    • 읽기 요청: 승인이 필요하지 않습니다. 작업이 즉시 진행됩니다.

    • Read-Handle 요청: 중단에 대한 승인이 필요하지만 작업이 즉시 계속됩니다(즉, 승인을 기다리지 않고).

    • 수준 1, 일괄 처리, 필터, 읽기/쓰기 및 읽기-Write-Handle 요청: 작업을 계속하기 전에 반드시 승인을 받아야 합니다.

FileRenameInformation, FileShortNameInformation 및 FileLinkInformation 작업에 대한 oplock 상태 확인

이 정보는 파일 또는 스트림에서 다음 작업을 수행할 때 적용됩니다.

  • 파일 또는 스트림의 이름이 바뀝니다.

  • 파일에 대한 짧은 이름이 설정되고 있습니다.

  • 파일에 대한 하드 링크가 만들어지고 있습니다. 이는 새 하드 링크가 기존 링크를 다른 파일로 대체하고 대체되는 링크에 oplock이 있는 경우 oplock 상태에 영향을 줍니다.

  • oplock이 있는 스트림의 상위 디렉터리 이름이 변경되거나 상위 디렉터리의 짧은 이름이 설정됩니다.

수준 1, 수준 2, 읽기 및 Read-Write 작업에 대한 조건

  • oplock이 끊어지지 않았습니다.

  • 승인이 필요하지 않으며 작업이 즉시 진행됩니다.

Batch, Filter, Read-Handle 및 Read-Write-Handle 작업에 대한 조건

  • FILE_OBJECT의 oplock을 소유한 키와 다른 oplock 키를 가지고 있는 경우에 해당 FILE_OBJECT에서 FileRenameInformation, FileShortNameInformation 및 FileLinkInformation을 위한 IRP_MJ_SET_INFORMATION 작업이 발생하면 중단됩니다. oplock이 끊어진 경우:

    • 일괄 처리 및 필터 요청은 없음으로 중단됩니다.

    • Read-Handle 요청이 읽기로 중단됩니다.

    • 읽기-Write-Handle 요청이 읽기-쓰기로 중단됩니다.

  • 작업이 계속되기 전에 승인을 받아야 합니다.

FileDispositionInformation 작업에 대한 옵록 상태 확인

이 정보는 호출자가 파일을 삭제하려고 할 때 적용됩니다.

  • oplock을 소유하는 FILE_OBJECT의 키와 다른 oplock 키를 가진 FILE_OBJECT에서 작업이 발생할 때 IRP_MJ_SET_INFORMATION을 중단합니다(FileDispositionInformation의 경우), FILE_DISPOSITION_INFORMATIONDeleteFile이 TRUE **일 때에도 . oplock이 깨진 경우:

    • Read-Handle이 읽기 위해 중단을 요청합니다.

    • 읽기-Write-Handle 요청이 읽기-쓰기로 중단됩니다.

  • 작업이 계속되기 전에 승인을 받아야 합니다.