fltAllocateFileLock 函数 (fltkernel.h)

FltAllocateFileLock 例程分配和初始化新的 FILE_LOCK 结构。

语法

PFILE_LOCK FLTAPI FltAllocateFileLock(
  [in, optional] PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE CompleteLockCallbackDataRoutine,
  [in, optional] PUNLOCK_ROUTINE                          UnlockRoutine
);

参数

[in, optional] CompleteLockCallbackDataRoutine

指向 IRP_MJ_LOCK_CONTROL请求完成时调用 的PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE 类型的回调例程的指针。 此参数是可选的,可以为 NULL。

[in, optional] UnlockRoutine

指向PUNLOCK_ROUTINE类型的回调例程的指针,该例程将在字节范围解锁时调用。 此参数是可选的,可以为 NULL。

返回值

FltAllocateFileLock 返回指向新分配 的 FILE_LOCK 结构的指针。

注解

FltAllocateFileLock 从分页池分配新的 FILE_LOCK 结构并对其进行初始化。

返回 的 FILE_LOCK 结构可用于通过调用 FltProcessFileLock 锁定文件中的字节范围。

不再需要 FILE_LOCK 结构时,可以通过调用 FltUninitializeFileLock 将其取消初始化。 然后,可以通过调用 FltInitializeFileLock 来初始化未初始化FILE_LOCK结构以供重复使用。

若要释放已初始化 FILE_LOCK 结构,请调用 FltFreeFileLock

当传递给 FltProcessFileLockCallbackData 参数表示快速 I/O 操作时,不会调用 CompleteLockCallbackDataRoutine 中指定的回调。 仅当 CallbackData 中的 I/O 操作为 IRP 且 CompleteLockCallbackDataRoutine 不为 NULL 时,才会调用回调例程。

要求

要求
最低受支持的客户端 Windows XP SP2
最低受支持的服务器 Windows Server 2003 SP1
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FILE_LOCK

FltCheckLockForReadAccess

FltCheckLockForWriteAccess

FltFreeFileLock

FltInitializeFileLock

FltProcessFileLock

FltUninitializeFileLock

FsRtlAllocateFileLock

IRP_MJ_LOCK_CONTROL

PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE

PUNLOCK_ROUTINE