FSCTL_OPLOCK_BREAK_NOTIFY 제어 코드
FSCTL_OPLOCK_BREAK_NOTIFY 제어 코드를 사용하면 호출 애플리케이션이 기회 잠금(oplock) 중단이 완료될 때까지 기다릴 수 있습니다.
이 작업은 호출자의 핸들을 열 때 이미 시작된 oplock 중단에만 유용합니다. 핸들이 FILE_COMPLETE_IF_OPLOCKED 열려 있어야 합니다. oplock이 현재 유지되고 oplock 중단이 시작되지 않은 경우 이 작업은 의미가 없습니다.
이 제어 코드를 처리하기 위해 미니필터는 다음 매개 변수를 사용하여 FltOplockFsctrl 을 호출합니다. 파일 시스템 또는 레거시 필터 드라이버는 FsRtlOplockFsctrl을 호출합니다.
기회 잠금 및 FSCTL_OPLOCK_BREAK_NOTIFY 제어 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
매개 변수
Oplock: 파일에 대한 불투명 불투명 개체 포인터입니다.
CallbackData: FltOplockFsctrl 만 해당합니다. IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 요청에 대한 콜백 데이터(FLT_CALLBACK_DATA) 구조입니다. 작업에 대한 FsControlCode 매개 변수는 FSCTL_OPLOCK_BREAK_NOTIFY 합니다.
Irp: FsRtlOplockFsctrl 만 해당합니다. IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 요청에 대한 IRP입니다. 작업에 대한 FsControlCode 매개 변수는 FSCTL_OPLOCK_BREAK_NOTIFY 합니다.
OpenCount: 이 작업에 사용되지 않습니다. 를 0으로 설정합니다.
상태 블록
FltOplockFsctrl 은 oplock 중단이 진행 중인 경우 FLT_PREOP_PENDING 반환하고 oplock 중단이 완료되면 IRP가 완료됩니다. (이 경우 IRP는 결국 STATUS_SUCCESS 또는 STATUS_CANCELLED 완료할 수 있습니다.) 그렇지 않으면 FltOplockFsctrl은 FLT_PREOP_COMPLETE 반환합니다.
FsRtlOplockFsctrl 은 이 작업에 대해 다음 NTSTATUS 값 중 하나를 반환합니다.
코드 | 의미 |
---|---|
STATUS_SUCCESS | 이 핸들에 의해 oplock이 유지되지 않았거나 oplock이 유지되고 oplock 중단이 시작되지 않았습니다. |
STATUS_INVALID_OPLOCK_PROTOCOL | FSCTL_OPLOCK_BREAK_NOTIFY 작업이 완료되기 전에 IRP가 취소되었습니다. |
STATUS_PENDING | oplock 중단이 진행 중입니다. Oplock 중단이 완료되면 IRP가 완료됩니다. IRP는 결국 STATUS_SUCCESS 또는 STATUS_CANCELLED 완료할 수 있습니다. 성공 코드입니다. |
요구 사항
요구 사항 유형 | 요구 사항 |
---|---|
헤더 | Ntifs.h ( Ntifs.h 또는 Fltkernel.h 포함) |
추가 정보
IRP_MJ_FILE_SYSTEM_CONTROL 대한 FLT_PARAMETERS
FSCTL_OPBATCH_ACK_CLOSE_PENDING