当作FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段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:不透明指针指向请求字节范围锁的进程的进程对象。 始终填充此成员,但仅对 FastIo 锁定作有意义。 它与 FltGetRequestorProcess 返回的值区分开来,因为 ProcessId 始终标识原始请求进程,而 FltGetRequestorProcess 可能会返回 IoGetRequestorProcess (对于 IRP作)或 PsGetCurrentProcess (对于 FastI/O作),这可能与原始请求程序不同。
FailImmediately:指定如果无法立即授予锁,则指定锁请求是否应失败的布尔值。 如果请求线程可以处于等待状态,则此成员设置为 FALSE ,直到授予请求;如果请求无法授予,则为 TRUE 。 始终填充此成员,但仅对 FastIo 锁定作有意义。
ExclusiveLock:指定是否请求排他锁的布尔值。 如果请求独占锁,则此成员设置为 TRUE ;如果请求共享锁,则为 FALSE 。 始终填充此成员,但仅对 FastIo 锁定作有意义。
注解
回调数据(FLT_CALLBACK_DATA )结构表示 的 IRP_MJ_LOCK_CONTROL 作的FLT_PARAMETERS结构。 它包含在 FLT_IO_PARAMETER_BLOCK 结构中。
IRP_MJ_LOCK_CONTROL可以是基于 IRP 的 I/O作或快速 I/O作。
要求
| 要求类型 | 要求 | 
|---|---|
| 标题 | Fltkernel.h (包括 Fltkernel.h) |