FLT_PARAMETERS for IRP_MJ_LOCK_CONTROL union

The following union component is used when the MajorFunction field of the FLT_IO_PARAMETER_BLOCK structure for the operation is IRP_MJ_LOCK_CONTROL.

Syntax

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;

Members

LockControl
Structure containing the following members.

Length
Pointer to a variable that specifies the length in bytes of the range to be locked.

Key
Key value to be assigned to the byte-range lock.

ByteOffset
Starting byte offset within the file of the range to be locked.

ProcessId
Opaque pointer to the process object for the process that requested the byte-range lock.

FailImmediately
Boolean value specifying whether the lock request should fail if the lock cannot be granted immediately. This member is set to FALSE if the requesting thread can be put into a wait state until the request is granted or TRUE if it cannot.

ExclusiveLock
Boolean value specifying whether an exclusive lock is requested. This member is set to TRUE if an exclusive lock is requested or FALSE if a shared lock is requested.

Remarks

The FLT_PARAMETERS structure for the IRP_MJ_LOCK_CONTROL operation represented by a callback data (FLT_CALLBACK_DATA) structure. It is contained in an FLT_IO_PARAMETER_BLOCK structure.

IRP_MJ_LOCK_CONTROL can be an IRP-based I/O operation or a fast I/O operation.

Requirements

Requirement Description
Header fltkernel.h (include fltkernel.h)

See also

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