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。
当传递给 FltProcessFileLock 的 CallbackData 参数表示快速 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 |