다음을 통해 공유


FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 제어 코드

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 제어 코드는 파일에 대한 배타적(수준 1, 일괄 처리 또는 필터) 기회 잠금(oplock)이 끊어졌다는 알림에 응답합니다.

클라이언트 애플리케이션은 oplock 중단을 승인하고 oplock이 수준 2로 손상된 수준 1 oplock인 경우 수준 2 oplock을 원한다는 것을 나타내기 위해 이 컨트롤 코드를 보냅니다.

이 제어 코드를 처리하기 위해 미니필터는 다음 매개 변수를 사용하여 FltOplockFsctrl 을 호출합니다. 파일 시스템 또는 레거시 필터 드라이버는 FsRtlOplockFsctrl을 호출합니다.

기회 잠금 및 FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 제어 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

매개 변수

  • Oplock: 파일에 대한 불투명 불투명 개체 포인터입니다.

  • CallbackData: FltOplockFsctrl 만 해당합니다. IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 요청에 대한 콜백 데이터(FLT_CALLBACK_DATA) 구조입니다. 작업에 대한 FsControlCode 매개 변수는 FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 합니다.

  • Irp: FsRtlOplockFsctrl 만 해당합니다. IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 요청에 대한 IRP입니다. 작업에 대한 FsControlCode 매개 변수는 FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 합니다.

  • OpenCount: 이 작업에 사용되지 않습니다. 를 0으로 설정합니다.

상태 블록

수준 1 oplock이 수준 2로 손상되고 수준 2 oplock이 부여되면 FltOplockFsctrl은 이 작업에 대한 FLT_PREOP_PENDING 반환합니다. 그렇지 않으면 FLT_PREOP_COMPLETE 반환합니다.

FsRtlOplockFsctrl 은 이 작업에 대해 다음 NTSTATUS 값 중 하나를 반환합니다.

코드 의미
STATUS_SUCCESS oplock 중단이 승인됩니다. 남은 oplock은 유지되지 않습니다.
STATUS_INVALID_OPLOCK_PROTOCOL 이 핸들에서 oplock을 보유하지 않았거나 oplock 중단이 현재 진행 중이 아닙니다. 오류 코드입니다.
STATUS_PENDING oplock 중단이 승인됩니다. 반환할 때 FSCTL_OPLOCK_BREAK_ACKNOWLEDGE 제어 코드의 보낸 사람에게는 수준 2 oplock이 있습니다. 성공 코드입니다.

요구 사항

요구 사항 유형 요구 사항
헤더 Ntifs.h ( Ntifs.h 또는 Fltkernel.h 포함)

추가 정보

FLT_CALLBACK_DATA

FLT_PARAMETERS

IRP_MJ_FILE_SYSTEM_CONTROL 대한 FLT_PARAMETERS

FltOplockFsctrl

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL