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) |
库 | FltMgr.lib |
IRQL | <= APC_LEVEL |