Поделиться через


FLT_PARAMETERS для объединения IRP_MJ_LOCK_CONTROL

Следующий компонент объединения используется, когда поле MajorFunctionструктуры FLT_IO_PARAMETER_BLOCK для операции IRP_MJ_LOCK_CONTROL.

Синтаксис

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    PLARGE_INTEGER          Length;
    ULONG POINTER_ALIGNMENT Key;
    LARGE_INTEGER           ByteOffset;
    PEPROCESS               ProcessId;
    BOOLEAN                 FailImmediately;
    BOOLEAN                 ExclusiveLock;
  } LockControl;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Члены

  • LockControl: структура, содержащая следующие элементы.

  • Length: указатель на переменную, указывающую длину в байтах заблокированного диапазона.

  • Ключ: значение ключа, назначаемое блокировке диапазона байтов.

  • ByteOffset: начальное смещение байтов в файле диапазона, который необходимо заблокировать.

  • ProcessId: непрозрачный указатель на объект процесса для процесса, запрашивающего блокировку диапазона байтов.

  • FailImmediately: логическое значение, указывающее, должен ли запрос на блокировку завершаться ошибкой, если блокировка не может быть предоставлена немедленно. Этот элемент имеет значение FALSE , если запрашивающий поток может быть переведен в состояние ожидания до тех пор, пока запрос не будет предоставлен, или ЗНАЧЕНИЕ TRUE , если это невозможно.

  • ExclusiveLock: логическое значение, указывающее, запрашивается ли монопольная блокировка. Для этого элемента задано значение TRUE , если запрашивается монопольная блокировка, или FALSE , если запрашивается общая блокировка.

Комментарии

Структура FLT_PARAMETERS для операции IRP_MJ_LOCK_CONTROL , представленная структурой данных обратного вызова (FLT_CALLBACK_DATA). Он содержится в структуре FLT_IO_PARAMETER_BLOCK .

IRP_MJ_LOCK_CONTROL может быть операцией ввода-вывода на основе IRP или быстрой операцией ввода-вывода.

Требования

Тип требования Требование
Заголовок Fltkernel.h (включая Fltkernel.h)

См. также раздел

ACCESS_MASK

ACCESS_STATE

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS

FltAllocateFileLock

FltCheckLockForReadAccess

FltCheckLockForWriteAccess

FltFreeFileLock

FltInitializeFileLock

FltProcessFileLock

FltUninitializeFileLock

IRP_MJ_LOCK_CONTROL

PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE

PUNLOCK_ROUTINE