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 |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기