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