код элемента управления FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
Код элемента управления FSCTL_OPLOCK_BREAK_ACKNOWLEDGE реагирует на уведомление о том, что монопольная (уровень 1, пакет или фильтр) оппортунистическая блокировка (oplock) для файла была нарушена.
Клиентское приложение отправляет этот управляющий код, чтобы указать, что оно подтверждает прерывание операции и что, если операция oplock является блокировкой уровня 1, которая была нарушена до уровня 2, ему требуется блокировка уровня 2.
Для обработки этого кода элемента управления мини-фильтр вызывает FltOplockFsctrl со следующими параметрами. Драйвер файловой системы или устаревшего фильтра вызывает FsRtlOplockFsctrl.
Дополнительные сведения о оппортунистических блокировках и коде элемента управления FSCTL_OPLOCK_BREAK_ACKNOWLEDGE см. в документации по Microsoft Windows SDK.
Параметры
Oplock: указатель непрозрачного объекта oplock для файла.
CallbackData: только FltOplockFsctrl . Структура данных обратного вызова (FLT_CALLBACK_DATA) для запроса FSCTL IRP_MJ_FILE_SYSTEM_CONTROL. Параметр FsControlCode для операции должен быть FSCTL_OPLOCK_BREAK_ACKNOWLEDGE.
Irp: только FsRtlOplockFsctrl . IRP для IRP_MJ_FILE_SYSTEM_CONTROL запроса FSCTL. Параметр FsControlCode для операции должен быть FSCTL_OPLOCK_BREAK_ACKNOWLEDGE.
OpenCount: не используется с этой операцией; Значение равно нулю.
Блок состояния
FltOplockFsctrl возвращает FLT_PREOP_PENDING для этой операции, если операция уровня 1 прервана до уровня 2 и была предоставлена блокировка уровня 2. В противном случае возвращается FLT_PREOP_COMPLETE.
FsRtlOplockFsctrl возвращает одно из следующих значений NTSTATUS для этой операции:
Код | Значение |
---|---|
STATUS_SUCCESS | Прерывание операции подтверждено. Никаких оставшихся облокировок не удерживается. |
STATUS_INVALID_OPLOCK_PROTOCOL | Этот дескриптор не удерживал ни облокировки, либо разрыв не выполняется. Это код ошибки. |
STATUS_PENDING | Прерывание операции подтверждено. При возврате отправитель кода элемента управления FSCTL_OPLOCK_BREAK_ACKNOWLEDGE удерживает блокировку уровня 2. Это код успешного выполнения. |
Требования
Тип требования | Требование |
---|---|
Заголовок | Ntifs.h (включая Ntifs.h или Fltkernel.h) |
См. также раздел
FLT_PARAMETERS для IRP_MJ_FILE_SYSTEM_CONTROL