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을 부여할 수 있습니다. oplock 형식에 대한 자세한 내용은 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