FsRtlUpperOplockFsctrl 함수(ntifs.h)

FsRtlUpperOplockFsctrl 루틴은 보조 또는 계층화된 파일 시스템에 대한 기회 잠금(oplock) 요청 및 승인을 처리합니다. 위쪽 파일 시스템은 하위 파일 시스템에 있는 oplock의 상태를 제출합니다. FsRtlUpperOplockFsctrl 은 상위 파일 시스템 oplock을 부여하거나 거부할지 여부를 결정합니다.

구문

NTSTATUS FsRtlUpperOplockFsctrl(
  [in] POPLOCK Oplock,
  [in] PIRP    Irp,
  [in] ULONG   OpenCount,
  [in] ULONG   LowerOplockState,
  [in] ULONG   Flags
);

매개 변수

[in] Oplock

파일에 대한 불투명 불투명 포인터입니다. 이 포인터는 FsRtlInitializeOplock에 대한 이전 호출에 의해 초기화되어야 합니다.

[in] Irp

I/O 작업에 대한 IRP에 대한 포인터입니다.

[in] OpenCount

전용 oplock이 요청되는 경우 파일에 대한 사용자 핸들 수입니다. 수준 2, R 또는 RH oplock 요청에 대해 0이 아닌 값을 설정하면 파일에 바이트 범위 잠금이 있음을 나타냅니다. oplock 형식에 대한 자세한 내용은 Oplock 형식을 참조하세요.

[in] LowerOplockState

상위 파일 시스템에서 보유하는 낮은 oplock 수준 값입니다. 이는 다음의 비트 OR 조합입니다.

의미
OPLOCK_LEVEL_CACHE_READ Oplock 읽기(R) 형식을 나타냅니다.
OPLOCK_LEVEL_CACHE_WRITE oplock 쓰기(W) 형식을 나타냅니다.
OPLOCK_LEVEL_CACHE_HANDLE Oplock 핸들(H) 형식을 나타냅니다.

[in] Flags

연결된 oplock 작업에 대한 비트 마스크입니다. 파일 시스템 또는 필터 드라이버는 비트를 설정하여 FsRtlUpperOplockFsctrl의 동작을 지정합니다. Flags 매개 변수에는 다음과 같은 옵션이 있습니다.

의미
OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH(0x00000001) 파일 시스템은 현재 열려 있는 핸들의 모든 oplock 키가 일치하는지 확인했습니다. 이 플래그를 지정하면 파일에 열려 있는 핸들이 둘 이상 있을 때 oplock 패키지에서 수준 RW 또는 RWH의 oplock을 부여할 수 있습니다.

반환 값

FsRtlUpperOplockFsctrl 은 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS IRP_MJ_CREATE 요청의 경우 STATUS_SUCCESS 요청된 필터 기회 잠금(oplock)이 부여되었음을 나타냅니다. FSCTL 작업의 경우 STATUS_SUCCESS 의미는 FSCTL 코드에 따라 달라집니다. 자세한 내용은 FsRtlOplockFsctrlEx의 설명 섹션을 참조하세요.
STATUS_CANCELLED I/O 작업이 취소되었습니다. STATUS_CANCELLED 오류 코드입니다.
STATUS_INVALID_PARAMETER I/O 작업에 대한 FSCTL 코드가 올바른 값 oplock 요청이 아니었습니다. 유효한 요청 유형은 FsRtlOplockFsctrlEx의 설명 섹션에 나열됩니다. STATUS_INVALID_PARAMETER 오류 코드입니다.
STATUS_OPLOCK_NOT_GRANTED oplock을 부여할 수 없습니다. 요청된 상위 파일 시스템 oplock의 수준은 하위 파일 시스템에 대해 부여된 oplock에 대해 유효하지 않습니다. STATUS_OPLOCK_NOT_GRANTED 오류 코드입니다.
STATUS_PENDING FSCTL 작업에만 사용됩니다. STATUS_PENDING 의미는 FSCTL 코드에 따라 달라집니다. 자세한 내용은 FsRtlOplockFsctrlEx의 설명 섹션을 참조하세요. STATUS_PENDING 성공 코드입니다.
STATUS_CANNOT_GRANT_REQUESTED_OPLOCK 새 oplock에 대한 oplock 승인은 허용되지 않습니다. 잠금의 상위 파일 시스템의 수준은 낮은 파일 시스템 oplock에 대해 유효하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL

추가 정보

FsRtlCheckUpperOplock

FsRtlOplockFsctrlEx